[XSLT]Comment faire une rupture ?
Bonjour,
Je suis confronté au problème suivant :
j'ai le fichier XML suivant (source.xml) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
<?xml version="1.0"?>
<root>
<list>
<object>
<family>house</family>
<name>door</name>
<price>100</price>
</object>
<object>
<family>house</family>
<name>window</name>
<price>200</price>
</object>
<object>
<family>house</family>
<name>bedroom</name>
<price>300</price>
</object>
<object>
<family>human</family>
<name>arm</name>
<price>400</price>
</object>
<object>
<family>human</family>
<name>foot</name>
<price>600</price>
</object>
<object>
<family>house</family>
<name>bathroom</name>
<price>700</price>
</object>
<object>
<family>human</family>
<name>hand</name>
<price>300</price>
</object>
</list>
</root> |
Et je veux obtenir un fichier XML qui a la forme suivante (target.xml) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
<?xml version="1.0"?>
<root>
<list>
<family name="house">
<object>
<name>door</name>
</object>
<object>
<name>window</name>
</object>
<object>
<name>bedroom</name>
</object>
<object>
<name>bathroom</name>
</object>
</family>
<family name="human">
<object>
<name>arm</name>
</object>
<object>
<name>foot</name>
</object>
<object>
<name>hand</name>
</object>
</family>
</list>
</root> |
Pour l'instant je fais ça, mais cela ne me donne pas encore le bon résultat (somework.xsl) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/root">
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<anotherlist>
<xsl:for-each select="list">
<xsl:if test="object">
<xsl:for-each select="object" order-by="+family">
<family name="{family}">
<object>
<name>
<xsl:value-of select="name"/>
</name>
<price>
<xsl:value-of select="price"/>
</price>
</object>
</family>
</xsl:for-each>
</xsl:if>
</xsl:for-each>
</anotherlist>
</root>
</xsl:template>
</xsl:stylesheet> |
Quelqu'un peut-il m'aider ?
Merci.