Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries >Thread Prev - Re: xpath problems? >Thread Next - Re: xpath problems? Re: xpath problems?To: NULL Date: 6/5/2006 10:20:00 AM Thanks. I used local names because sometimes some of the nodes had ns0 prefixes, and some of them had xsd, so rather than use local names only in certain spots where the namespace may change I just used it everywhere to keep it uniform throughout the transform. One of those things that seemed like a good idea at the time. "Joris Gillis" <joris.gillis@s...> wrote in message news:op.taj71iol62ysdy@j...... On Fri, 02 Jun 2006 23:43:30 +0200, Jeremy Chapman <please@Idontlikespam> wrote: > Are you saying the <xsl:value-of > select="/*[local-name()='config']/*[local-name()='xsddocs']/@href"/> > statement is working on the $doc nodeset because of the <for-each that > its in? He would be correct in saying that > If so, how would I work on the non external document? You could "backup" your original document context by saving it in a variable: <xsl:variable name="this" select="/"/> <xsl:for-each select="$doc/*[local-name()='schema']/*[local-name()='element'][@name=$strRootReference]/*[local-name()='complexType']/*[local-name()='sequence']/*[local-name()='element']"> <xsl:value-of select="$this/*[local-name()='config']/*[local-name()='xsddocs']/@href"/> </xsl:for-each> On a sidenote, what's with all the local-name()'s? Wouldn't "$doc/sxd:schema/sxd:element[@name=$strRootReference]/sxd:complexType/sxd:sequence/sxd:element" be more readable? > "Anthony Jones" <Ant@y...> wrote in message > news:uB2vLtohGHA.4252@T...... >> >> "Jeremy Chapman" <please@Idontlikespam> wrote in message >> news:u3cEN%23lhGHA.1000@T...... >>> Code snippet below (shortened for illustration purposes) >>> My problem is that if I move the <xsl:value-of statement to the first >>> line >>> under <xsl:template match="/"> then it returns the @href attribute as I >>> would expect. But if I leave it as shown below, it doesn't return a >> value, >>> but I don't understand why. Can someone shed some light? >>> >>> <xsl:template match="/"> >>> <xsl:call-template name="processSegmentDetails" > >>> </xsl:template> >>> >>> <xsl:template name="processSegmentDetails"> >>> <xsl:for-each >>> >> select="$doc/*[local-name()='schema']/*[local-name()='element'][@name=$strRo >> otReference]/*[local-name()='complexType']/*[local-name()='sequence']/*[loca >> l-name()='element']"> >>> <xsl:value-of >>> select="/*[local-name()='config']/*[local-name()='xsddocs']/@href"/> >>> </xsl:template> >>> >>> >> >> Where does $doc get it's nodes from? >> >> > > Quidquid latine scriptum sit, altum viditur regards, -- Joris Gillis (http://users.telenet.be/root-jg/me.html) Veni, vidi, wiki (http://www.wikipedia.org) | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
