[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Inquiry: Reordering XML elements through XSL
"G. Ken Holman" wrote: > >However, this still leaves the reverse problem of translating from a tag > >order of AAABBB to ABABAB. > <xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0" > indent-result="yes"> > > <xsl:template match="/*"> <!--document element--> > <xsl:copy> > <xsl:copy-of select="@*"/> <!--preserve atts--> > <xsl:call-template name="do-rest"/> > </xsl:copy> > </xsl:template> > > <xsl:template name="do-rest"> > <xsl:param-variable name="index" expr="1"/> <!--init'd only once--> > <xsl:if test="//a[$index] | //b[$index]"> > <xsl:copy-of select="//a[$index]"/> <!--preserve elements--> > <xsl:copy-of select="//b[$index]"/> > <xsl:call-template name="do-rest"> <!--recurse--> > <xsl:param name="index" expr="$index + 1"/> > </xsl:call-template> > </xsl:if> > </xsl:template> > > </xsl:stylesheet> A simpler approach is: perform the following on the document element "test" for each a element copy the element let n be the position of this a element (ie this element is the n-th a element) copy the n-th of the following b siblings In XSLT: <xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0" indent-result="yes"> <xsl:template match="test"> <test> <xsl:for-each select="a"> <xsl:copy-of select="."/> <xsl:variable name="n" expr="position()"/> <xsl:copy-of select="from-following-siblings(b[$n])"/> </xsl:for-each> </test> </xsl:template> </xsl:stylesheet> James xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i... Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1 To (un)subscribe, mailto:majordomo@i... the following message; (un)subscribe xml-dev To subscribe to the digests, mailto:majordomo@i... the following message; subscribe xml-dev-digest List coordinator, Henry Rzepa (mailto:rzepa@i...)
|
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
|