Subject: Re: [xsl] How to query a temporary document in a variable From: Jean-Pierre Bergamin <jpbergamin@xxxxxxxxx> Date: Mon, 10 Sep 2012 15:04:01 +0200 |
Hi Martin I indeed use a default namespace by declaring it with xpath-default-namespace. An complete example stylesheet looks like this: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:er="http://www.junisphere.net/eRanger" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.0" xpath-default-namespace="http://graphml.graphdrawing.org/xmlns"> <xsl:output encoding="iso-8859-1" method="text" /> <xsl:variable name="propertyMap"> <entry key="foo">foo value</entry> <entry key="bar">bar value</entry> </xsl:variable> <xsl:template match="/"> <xsl:value-of xmlns="" select="$propertyMap/entry[@key='foo']" /> </xsl:template> </xsl:stylesheet> If xpath-default-namespace is deleted, "foo value" is output as expected. How can I get the expected result with xpath-default-namespace set? Best regards, James 2012/9/10 Martin Honnen <Martin.Honnen@xxxxxx>: > Jean-Pierre Bergamin wrote: >> >> Hello xslt-users >> >> I'm trying to use a temporary document as a lookup table with saxon >> 9.4 using xslt 2.0. The solution is also proposed in this >> stackoverflow answer: >> http://stackoverflow.com/questions/3626118/xslt-creating-a-map-in-xslt >> >> But I'm not getting any results when I query the variable that holds >> the temporary document: >> >> <xsl:variable name="propertyMap"> >> <entry key="foo">foo value</entry> >> <entry key="bar">bar value</entry> >> </xsl:variable> >> >> <xsl:template match="/"> >> <xsl:value-of select="$propertyMap/entry[position() = 1]"/> >> <xsl:value-of select="$propertyMap/entry[@key='foo']"/> >> <xsl:value-of select="$propertyMap[1]"/> >> </xsl:template> >> >> The first two value-of expressions do not output anything, whereas the >> third one outputs the whole propertyMap. >> >> Any idea what I'm missing here? > > > > Perhaps the stylesheet root element defines some default namespace (e.g. > <xsl:stylesheet > xmlns="http://www.w3.org/1999/xhtml" ...> > ) which gets into the way for the temporary elements you want to create so > use e.g. > <xsl:variable xmlns="" name="propertyMap">...</xsl:variable> > > That's a guess of course, show us more context I guessed wrong. > > > -- > > Martin Honnen --- MVP Data Platform Development > http://msmvps.com/blogs/martin_honnen/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] How to query a temporary , Martin Honnen | Thread | Re: [xsl] How to query a temporary , Jean-Pierre Bergamin |
Re: [xsl] How to query a temporary , Martin Honnen | Date | Re: [xsl] How to query a temporary , Jean-Pierre Bergamin |
Month |