Subject: Re: [xsl] reversing or swapping nested node hierarchy From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Sun, 19 Mar 2006 14:01:09 -0500 |
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.
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@xxxxxxxxxxxxxxxxxxxx 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] reversing or swapping nested , Chris Capon | Thread | [xsl] Announce: Repeat XSL Delivery, G. Ken Holman |
RE: [xsl] Re: How to strip partial , Michael Kay | Date | [xsl] Announce: Repeat XSL Delivery, G. Ken Holman |
Month |