Hi David,
has been shown before on this list.
Have a look at the following thread:
http://www.biglist.com/lists/lists.mulberrytech.com/xsl-list/archives/20
0401/msg00694.html
The selection you need in a template that handles e[(_at_)t='a'] looks like
this:
following-sibling::*[generate-id(preceding-sibling::e[1]) =
generate-id(current()) and following-sibling::e[1]/@t='b']
But that is just one approach.
You may also want to skip processing of e[(_at_)t='b'].
I suggest you dive into the xsl-list archive...
Cheers,
Peter
-----Original Message-----
From: David Frey [mailto:dpfrey(_at_)shaw(_dot_)ca]
Sent: woensdag 25 juni 2008 6:30
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Need to output an opening or closing tag by itself
I have a simple XSLT problem for the gurus.
This is my input document:
<root>
<e t="a"/>
<f/>
<f/>
<e t="b"/>
</root>
This is the output document I want to produce:
<root>
<e>
<f/>
<f/>
</e>
</root>
This is the stylesheet I wrote to do the transformation:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/root">
<root>
<xsl:apply-templates/>
</root>
</xsl:template>
<xsl:template match="e">
<xsl:choose>
<xsl:when test="@t ='a'">
<e>
</xsl:when>
<xsl:when test="@t ='b'">
</e>
</xsl:when>
<xsl:otherwise>
<xsl:message terminate="yes">
Unexpected data in attribute t.
</xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="f">
<xsl:copy/>
</xsl:template>
</xsl:stylesheet>
Here is the Saxon output:
$ java -jar "c:\Program Files\Saxon\saxon9.jar" -o out.xml
in.xml test.xslt Error on line 16 column 9 of
file:/C:/Documents%20and%20Settings/DFREY/Desktop/test/test.xslt:
SXXP0003: Error reported by XML parser: The element type "e"
must be terminated by the
matching end-tag "</e>".
Failed to compile stylesheet. 1 error detected.
I understand that the source of the error is that the XSLT
file is not valid XML because the <e> tag doesn't have a
matching </e> tag in the right place.
How can I work around this issue to solve my problem?
Thanks,
David
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
This e-mail and any attachment is for authorised use by the intended
recipient(s) only. It may contain proprietary material, confidential
information and/or be subject to legal privilege. It should not be copied,
disclosed to, retained or used by, any other party. If you are not an intended
recipient then please promptly delete this e-mail and any attachment and all
copies and inform the sender. Thank you.
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--