|
Subject: RE: [xsl] selecting a section element which parent element doesn't have any element other than title element From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Thu, 6 Aug 2009 10:34:43 +0100 |
Something like this:
<!-- Rule for a Type 1 section -->
<xsl:template match="section">
<xsl:copy>
<xsl:attribute name="role">
<xsl:text>H</xsl:text>
<xsl:value-of select="count(ancestor::section)+1"/>
</xsl:attribute>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<!-- Rule for a Type 2 section -->
<xsl:template match="section[not(preceding-sibling::*[not(self::title)]]">
<xsl:copy>
<xsl:attribute name="role">
<xsl:for-each select="reverse(1 to count(ancestor::section)+1)"/>
<xsl:text>H</xsl:text>
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:attribute>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
Regards,
Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay
> -----Original Message-----
> From: srinivasan.p@xxxxxxxxxx [mailto:srinivasan.p@xxxxxxxxxx]
> Sent: 06 August 2009 10:21
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] selecting a section element which parent
> element doesn't have any element other than title element
>
> Hi Team,
>
> I need the following output from the following input. In the following
> Input1 example, "..." means any opening and closing tag can
> be present.
>
> Input1:
>
> <book>
> <section>
> <title>Section 1 title Present here</title> ...
> <section>
> <title>Section 2 title present here</title> </section>
> </section> </book>
>
> Output1:
>
> <book>
> <section role="H1">
> <title>Section 1 title Present here</title> ...
> <section role="H2">
> <title>Section 2 title present here</title> </section>
> </section> </book>
>
>
> Input2:
>
> <book>
> <section>
> <title>Section 1 title Present here</title> <section>
> <title>Section 2 title present here</title> </section>
> </section> </book>
>
> Output2:
>
> <book>
> <section role="H1">
> <title>Section 1 title Present here</title> <section
> role="H2H1"> <title>Section 2 title present here</title>
> </section> </section> </book>
>
> I am using the same style sheet to achieve these two outputs.
> I dont have any issues in achieving output1. The problem is
> in output2. I need to select the "section" element which
> parent is "section" that doesn't contain any tags other than
> "title" element.
>
> Can you please anyone suggest to me how to achieve this in XSLT 2.0?
>
> Thanks in advance.
>
> Thanks
> Srinivasan
>
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] selecting a section element w, srinivasan.p | Thread | RE: [xsl] selecting a section eleme, srinivasan.p |
| [xsl] selecting a section element w, srinivasan.p | Date | RE: [xsl] selecting a section eleme, srinivasan.p |
| Month |