At 2006-03-19 13:40 -0500, Chris Capon wrote:
In an XML document:
...
Is it possible to reverse the a/b hierarchy to produce b/a on output?
To complicate the problem, not all <a>'s have <b>'s.
So, in solving the problem, I've come up with something like this:
...
..which works, but the <b> template now has working knowledge of <a>.
I'd like to find a generic solution where <b> doesn't have to know about
<a> so that <b> can be nested inside other elements too and yet work the
same way.
I hope the code below helps. You don't say what you want done with
attributes, so I didn't do anything with them myself.
. . . . . . . . . Ken
T:\ftemp>type capon.xml
<root>
<a>
<b />
</a>
<a />
<d>
<b />
</d>
<d/>
<c>
<b />
</c>
</root>
T:\ftemp>xslt capon.xml capon.xsl con
<?xml version="1.0" encoding="utf-8"?><root>
<b><a/></b>
<a/>
<b><d/></b>
<d/>
<b><c/></b>
</root>
T:\ftemp>type capon.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="@*|node()"><!--identity for all other nodes-->
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[b]">
<b>
<xsl:copy/>
</b>
</xsl:template>
</xsl:stylesheet>
T:\ftemp>
--
Upcoming XSLT/XSL-FO hands-on courses: Washington,DC 2006-06-12/16
World-wide on-site corporate, govt. & user group XML/XSL training.
G. Ken Holman mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
Male Cancer Awareness Aug'05 http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers: http://www.CraneSoftwrights.com/legal
--~------------------------------------------------------------------
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>
--~--