Tri XML via XSL pour fichier XML en sortie
Bonjour à tous,
Je découvre les feuilles de style depuis peu (il n'es tjamais trop tard :zoubi: ) et j'aimerai utiliser le xsl:sort afin de trier un fichier XML existant pour le transformer dans un second.
Voici le fichier XML exemple en input :
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
| <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<mycompany>
<user IdUser="p-nom">
<year IdYear="2013">
<month IdMonth="zzzzjanuary">
<date>
<Value>01/01/2013<project>zzzR8.2</project>
<workload>5</workload>
</Value>
<Value>02/01/2013<project>R9</project>
<workload>3</workload>
</Value>
</date>
</month>
<month IdMonth="february">
<date>
<Value>01/02/2013<project>R82</project>
<workload>6</workload>
</Value>
<Value>09/01/2013<project>R88</project>
<workload>4</workload>
</Value>
</date>
</month>
</year>
</user>
</mycompany> |
Mon objectif :
* garder la même structure XML en sortie
* trier par attribut IdMonth
* trier par date (balise value)
* trier par projet (balise projet)
Qqun saurait il écrire le fichier XSL afin que je puisse avoir en sortie la même structure XML ?
Merci de votre aide et de votre temps ! :)
Lorenzo
merci à vous deux mais petit pb :(
Bonjour à tous et merci à vous deux d'avoir pris le temps de me répondre ! 8-)
Je m'essaies à l'écriture d'un XSL, mais j'avoue que je débute depuis peu (cette semaine!) et je suis loin encore d'en avoir compris la logique.
J'ai essayé le XSL proposé mais rien n'y fait, je n'obtient pas le résultat escompét, aucune transfo ne s'opère, le résultat = le fichier source ! :cry:
Voici le bout de code vb script que j'utilise poiur faire la transfo :
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 42 43 44 45
|
'Mon fichier a traiter
'***********************
strInputFile = "timetracking_indented.xml"
'Mon fichier resultat
'***********************
strOutputFile = "timetracking_indented_sorted.xml"
'Mon fichier de style
'***********************
strStylesheet = "test.xsl"
Set objXML = WScript.CreateObject("Msxml2.DOMDocument")
Set objXSL = WScript.CreateObject("Msxml2.DOMDocument")
' Je charge mon XML à traiter
'*****************************
objXML.async = False
objXML.Load strInputFile
If (objXML.parseError.errorCode <> 0) Then
Set myErr = objXML.parseError
MsgBox("You have XML error " & myErr.reason)
Else
'Je charge mon style
'*******************
objXSL.async = False
objXSL.Load strStylesheet
If (objXSL.parseError.errorCode <> 0) Then
Set myErr = objXSL.parseError
MsgBox("You have XSL error " & myErr.reason)
Else
'J'applique la transfo
'**********************
objXML.transformNode(objXSL)
' Enfin je sauvegarde mon resultat
'**********************************
objXML.save strOutputFile
End If
End If |
Bref j'ai essayé mais aucune transfo opérée, sniff. Cela viendrait il de vb script ? du XSL ?
cdt
Lorenzo