This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
changing the order of xml elements when doing XSLT
- To: <XSL-List at lists dot mulberrytech dot com>
- Subject: [xsl] changing the order of xml elements when doing XSLT
- From: "Charlie Wu" <cwu at covigna dot com>
- Date: Wed, 18 Apr 2001 17:41:16 -0700
- Reply-To: xsl-list at lists dot mulberrytech dot com
hi all..
i have a need to accomplish the following.. i.e. when doing an XSLT over an
XML file.. have the output xml be in a specific order that is NOT the same
as the order in the original XML. i guess it can only be done in the xsl
file somehow.. if at all possible.. but i couldn't figure it out.
to clarify what i mean.. here's an example:
source.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="mapper.xsl"?>
<record>
<a>1</a>
<b>2</b>
<c>3</c>
</record>
mapper.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="xml" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="record">
<newrecord><xsl:apply-templates/></newrecord>
</xsl:template>
<xsl:template match="c">
<CC>
<xsl:value-of select="."/>
</CC>
</xsl:template>
<xsl:template match="a">
<AA><xsl:value-of select="."/></AA>
</xsl:template>
<xsl:template match="b">
<BB>
<xsl:value-of select="."/>
</BB>
</xsl:template>
</xsl:stylesheet>
current output:
<newrecord
xmlns:fo="http://www.w3.org/1999/XSL/Format"><AA>1</AA><BB>2</BB><CC>3</CC><
/newrecord>
desired output:
<newrecord
xmlns:fo="http://www.w3.org/1999/XSL/Format"><CC>3</CC><BB>2</BB><AA>1</AA><
/newrecord>
any ideas would be highly appreciated..
thanks!
Charlie
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list