Subject: ;) Was: Re: Accessing the element stack generically From: "Clark C. Evans" <clark.evans@xxxxxxxxxxxxxxxxxxxx> Date: Fri, 15 Oct 1999 13:09:01 -0400 (EDT) |
I'm happy. XSL is slick. Problem: ~~~~~~~ For particular nodes visited, I'd like to print out their location. Example: ~~~~~~~ With a given document: <a><b x="y"><c/></b><b x="z" p="q"><c/></b></a> Produce output: <c-node location="/a/b[@x='y']/c" /> <c-node location="/a/b[@x='z'][@p='q']/c" /> Solution: ~~~~~~~~ <xsl:template match="c"> <xsl:element name="c-node" > <xsl:attribute name="location"> <xsl:for-each select="ancestor-or-self::*"> <xsl:value-of select="concat('/',name())"/> <xsl:for-each select="attribute::*"> <xsl:text>[@</xsl:text><xsl:value-of select="name()" /> <xsl:text>='</xsl:text><xsl:value-of select="." /> <xsl:text>']</xsl:text> </xsl:for-each> </xsl:for-each> </xsl:attribute> </xsl:element> </xsl:template> The default sort order is "document order", thus there is no problem with portability. Right? Clark XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: Accessing the element stack gen, Clark C. Evans | Thread | How to resolve the absolute locatio, Jarno Elovirta |
Announce: Fifth Edition of XSLT/XPa, G. Ken Holman | Date | Re: Nostradamus (was Re: FO. lists , Steve Schafer |
Month |