Subject: Re: [xsl] xpath-default-namespace with a variable From: Andrew Welch <andrew.j.welch@xxxxxxxxx> Date: Mon, 19 Sep 2011 14:21:38 +0100 |
On 19 September 2011 14:06, Murray McDonald <m.mcdonald@xxxxxxxxx> wrote: > I am using XSLT 2 via AltovaXML. > > I have a need to look up "key" terms in an external glossary document. The > external document has a default namespace at the root level. The code works > fine like this: > > <xsl:param name="GLOSSARY" select="'./working_files/glossary.xml'"/> > > <xsl:key name="definitions" match="glossentry" use="term/@key" > xpath-default-namespace="http://www.abcdef.com/hij"/> > > <xsl:variable name="glossaryDocument" select="document($GLOSSARY)"/> > > ... > > <xsl:variable name="definition"> > <xsl:for-each select="$glossaryDocument"> > <xsl:value-of select="key('definitions', > $normalizedText)/definition" xpath-default-namespace=" > http://www.abcdef.com/hij"/> > </xsl:for-each> > </xsl:variable> > > After testing I decided to replace the "hardcoded" namespace with a "global" > variable. I was surprised to find that this did not work. > > <xsl:variable name="glossNS" select="'http://www.abcdef.com/hij'" > as="xs:anyURL"/> > > <xsl:key name="definitions" match="glossentry" use="term/@key" > xpath-default-namespace="{$glossNS}"/> > > ... > > <xsl:value-of select="key('definitions', > $normalizedText)/definition" xpath-default-namespace="{$glossNS}"/> > > I've check the spec and I can't find anything to make me believe this > shouldn't work but it's entirely possible I may have missed some subtlety. You can't declare namespaces using AVTs.... I would just declare the namespace with a prefix once on your root element and then use that in the key definition: <xsl:stylesheet ... xmlns:foo="http://www.abcdef.com/hij"> <xsl:key name="definitions" match="foo:glossentry" use="term/@key"/> -- Andrew Welch http://andrewjwelch.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xpath-default-namespace w, Martin Honnen | Thread | Re: [xsl] xpath-default-namespace w, Murray McDonald |
Re: [xsl] xpath-default-namespace w, Martin Honnen | Date | Re: [xsl] xpath-default-namespace w, Murray McDonald |
Month |