Subject: RE: [xsl] XSL/XPath to generate a list of ancestors? From: "Scott Trenda" <Scott.Trenda@xxxxxxxx> Date: Mon, 12 May 2008 11:00:25 -0500 |
<xsl:for-each select="ancestor::*"> <xsl:value-of select="name()" /> </xsl:for-each> ~ Scott -----Original Message----- From: Nathan Potter [mailto:ndp@xxxxxxxxxxxxxxxxxxxx] Sent: Monday, May 12, 2008 10:52 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Cc: Nathan Potter Subject: [xsl] XSL/XPath to generate a list of ancestors? I need to concatenate the "name" attributes of all of the parents for each element. All I could figure out was to use a recursive template. Is there a more straightforward way to accomplish this? XML: <Dataset name="root"> <A name="a1"> <A name="a2"> <A name="a3" /> </A> </A> <B name="b1"> <B name="b2"/> </B> </Dataset> Desired output: <fullName>a1</fullName> <fullName>a1.a2</fullName> <fullName>a1.a2.a3</fullName> <fullName>b1</fullName> <fullName>b1.b2</fullName> XSL: <xsl:template name="fullName"> <fullName> <xsl:call-template name="fullNameWorker" /> </fullName > </xsl:template> <xsl:template match="*" name="fullNameWorker" mode="fullName"> <xsl:if test=".!=/"> <xsl:apply-templates select=".." mode="fullName"/> <xsl:if test="..!=/">.</xsl:if> <xsl:value-of select="@name"/> </xsl:if> </xsl:template> ============================================================ Nathan Potter Oregon State University, COAS ndp at coas.oregonstate.edu 104 Ocean. Admin. Bldg. 541 737 2293 voice Corvallis, OR 97331-5503 541 737 2064 fax
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSL/XPath to generate a list , Nathan Potter | Thread | RE: [xsl] XSL/XPath to generate a l, Scott Trenda |
[xsl] XSL/XPath to generate a list , Nathan Potter | Date | Re: [xsl] XSL/XPath to generate a l, Darcy Parker |
Month |