|
Subject: [xsl] RE : [xsl] counting the preceding cousins of an element From: Florent Georges <darkman_spam@xxxxxxxx> Date: Thu, 15 Jun 2006 10:40:48 +0200 (CEST) |
Carlo Liwanag wrote:
> In this example, the footnote is the element and the ancestor
> is the chapter.
> How can I find the
> preceding::footnote[ancestor::chapter[descendant::"is
> the current node"]]?
If I understand right, you can use the following in XSLT 2.0:
~> cat preceding-cousin.xsl
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output indent="yes"/>
<xsl:variable name="ref" select="//*[@id eq '15']"/>
<xsl:variable name="chapter" select="$ref/ancestor::chapter[1]"/>
<xsl:template match="/">
<xsl:copy-of select="$chapter//footnote[. << $ref]"/>
</xsl:template>
</xsl:transform>
~> cat preceding-cousin.xml
<root>
<chapter>
<para>
some text here
<footnote id="01"/>
some text here
<footnote id="02"/>
</para>
<para>
some text here
<footnote id="03"/>
some text here
<footnote id="04"/>
some text here
<footnote id="05"/>
some text here
<footnote id="06"/>
</para>
<para>
some text here
<footnote id="07"/>
some text here
<footnote id="08"/>
</para>
</chapter>
<chapter>
<para>
some text here
<footnote id="11"/>
some text here
<footnote id="12"/>
</para>
<para>
some text here
<footnote id="13"/>
some text here
<footnote id="14"/>
some text here
<footnote id="15"/>
some text here
<footnote id="16"/>
</para>
<para>
some text here
<footnote id="17"/>
some text here
<footnote id="18"/>
</para>
</chapter>
<chapter>
<para>
some text here
<footnote id="21"/>
some text here
<footnote id="22"/>
</para>
<para>
some text here
<footnote id="23"/>
some text here
<footnote id="24"/>
some text here
<footnote id="25"/>
some text here
<footnote id="26"/>
</para>
<para>
some text here
<footnote id="27"/>
some text here
<footnote id="28"/>
</para>
</chapter>
</root>
~> saxon preceding-cousin.xml preceding-cousin.xsl
<?xml version="1.0" encoding="UTF-8"?>
<footnote id="11"/>
<footnote id="12"/>
<footnote id="13"/>
<footnote id="14"/>
Regards,
--drkm
__________________________________________________
Do You Yahoo!?
En finir avec le spam? Yahoo! Mail vous offre la meilleure protection possible contre les messages non sollicitis
http://mail.yahoo.fr Yahoo! Mail
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] counting the preceding cousin, Carlo Liwanag | Thread | Re: [xsl] counting the preceding co, David Carlisle |
| [xsl] Trouble sorting with <xsl:sor, søren jepsen | Date | Re: [xsl] counting the preceding co, David Carlisle |
| Month |