[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Reordering a complex hierarchical structure
Hope the stylesheet below will help:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes" /> <xsl:key name="by-id" match="service" use="id" /> <xsl:template match="/"> <interactions> <xsl:for-each select="//service[generate-id() = generate-id(key('by-id', id)[1])]"> <service name="{name}" id="{id}"> <xsl:copy-of select="key('by-id', id)/../metric" /> </service> </xsl:for-each> </interactions> </xsl:template> </xsl:stylesheet> This when applied to XML: <x> <session> <service> <name>somename</name> <id>1</id> </service> <metric name="somemetric">value1</metric> <metric name="anothermetric">value2</metric> <metric name="andanothermetric">value3</metric> </session> <session> <service> <name>somename</name> <id>1</id> </service> <metric name="somemetric">value4</metric> <metric name="anothermetric">value5</metric> <metric name="andanothermetric">value6</metric> </session> <session> <service> <name>anothername</name> <id>2</id> </service> <metric name="somemetric">value7</metric> <metric name="anothermetric">value8</metric> <metric name="andanothermetric">value9</metric> </session> <session> <service> <name>anothername</name> <id>2</id> </service> <metric name="somemetric">value10</metric> <metric name="anothermetric">value11</metric> <metric name="andanothermetric">value12</metric> </session> </x> Produces output: <?xml version="1.0" encoding="UTF-8"?> <interactions> <service name="somename" id="1"> <metric name="somemetric">value1</metric> <metric name="anothermetric">value2</metric> <metric name="andanothermetric">value3</metric> <metric name="somemetric">value4</metric> <metric name="anothermetric">value5</metric> <metric name="andanothermetric">value6</metric> </service> <service name="anothername" id="2"> <metric name="somemetric">value7</metric> <metric name="anothermetric">value8</metric> <metric name="andanothermetric">value9</metric> <metric name="somemetric">value10</metric> <metric name="anothermetric">value11</metric> <metric name="andanothermetric">value12</metric> </service> </interactions> On 8/30/06, Ian Wootten <I.M.Wootten@xxxxxxxxxxxxxxxx> wrote: I'm attempting to structure a complex xml structure to be represented in a more meaningful manner. I'm doing this within a xml transformer in Java. -- Regards, Mukul Gandhi http://gandhimukul.tripod.com
|
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
|