Re: [xsl] XPath problem with getting all ancestors

Subject: Re: [xsl] XPath problem with getting all ancestors
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Fri, 23 Oct 2009 14:13:28 +0200
Jostein Austvik Jacobsen wrote:

	<xsl:template match="article">
		<xsl:variable name="v1">
			<xsl:copy-of select="content/node()"/>
		</xsl:variable>

So v1 now is a temporary document containg a deep copy of the child nodes of the content element(s). With your sample document the contents is then


                       <para>
                               <note id="1">text</note>
                       </para>


	<xsl:template match="note">
		The note at /article/content/para/note reads:
		ancestors="<xsl:value-of select="count(ancestor::*)"/>"
		preceding="<xsl:value-of select="count(preceding::*)"/>"
		contentNum="<xsl:value-of select="count(preceding::content)"/>"
		numberTest="<xsl:number level="any" count="content"/>"
	</xsl:template>

and that way the template for 'note' elements outputs


		The note at /article/content/para/note reads:
		ancestors="1"
		preceding="0"
		contentNum="0"
		numberTest=""

So the template is applied to a copy of the original para element.


--

	Martin Honnen
	http://msmvps.com/blogs/martin_honnen/

Current Thread