|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: empty element as an end-marker
> my problem is easily explained. This is the simple xml:
>
> <p>some text some text <pb/>more text more text</p>
>
> In my (html) output I need to process and reproduce the 'some text'
> (ie. up
> to the <pb/>) without the 'more text'. (Of course I also need to
> output
> just
> the 'more text' in another instance.) I'm having some trouble with
> this.
> Also the 'some text' contains tags which need to be processed by the
> stylesheet.
The following is an outline of a general way to process groups of nodes
delimited by a specific element. This transformation:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates select="/*/p/pb"/>
</xsl:template>
<xsl:template match="p/pb">
<xsl:element name="group{position()}">
<xsl:apply-templates
select="preceding-sibling::node()[not(self::pb)]
[generate-id(following-sibling::pb)
=
generate-id(current())
]"/>
</xsl:element>
<xsl:if test="position() = last()">
<xsl:element name="group{position() + 1}">
<xsl:apply-templates select="following-sibling::node()"/>
</xsl:element>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
when applied on this source.xml:
<html>
<p>some text1 some text1
<pb/>more text2 more text2
<pb/>more text3 more text3
</p>
</html>
produces:
<group1>some text1 some text1
</group1>
<group2>more text2 more text2
</group2>
<group3>more text3 more text3
</group3>
As we see, all nodes between two consecutive markers will be processed
as a group.
=====
Cheers,
Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
__________________________________________________
Do you Yahoo!?
Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop!
http://platinum.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








