Stylesheet pour changer la valeur d' un attribut d'un noeud
Stylesheet pour changer la valeur d' un attribut d'un noeud - XML/XSL - Programmation
MarshPosté le 02-06-2006 à 09:58:56
J'ai un fichier xml contenant un grand nombre de noeuds imbriqués les uns dans les autres et je voudrais remplacer la valeur de l'attribut 'Name' de tous les noeuds 'Item' lorsque la valeur de l'attribut vaut 'Text'. ( un find & replace de <item Name="Text"> par <item Name="Body"> ) Je voudrais effectuer cette transformation avec un xslt mais je tourne en rond depuis des heures : soit j'ai une copie conforme de l'xml de départ, soit je n'ai que les valeurs sans les noeuds !
En résumé, j'ai ceci: <node1> ..<node2 attrib1="test"> ....<item Name="Text"> ......<node3 attrib="...">...</node3> ......etc ....</item> ....<item Name="Subject">Ceci est le sujet</item> ...... etc ..</node2> ..<node2 attrib1="un autre test"> ....<item Name="Text"> ...... etc ....</item> ..</node2> </node1>
Et je voudrais ceci: <node1> ..<node2 attrib1="test"> ....<item Name="Body"> ......<node3 attrib="...">...</node3> ......etc ....</item> ....<item Name="Subject">Ceci est le sujet</item> ...... etc ..</node2> ..<node2 attrib1="un autre test"> ....<item Name="Body"> ...... etc ....</item> ..</node2> </node1>
Marsh Posté le 02-06-2006 à 09:58:56
J'ai un fichier xml contenant un grand nombre de noeuds imbriqués les uns dans les autres et je voudrais remplacer la valeur de l'attribut 'Name' de tous les noeuds 'Item' lorsque la valeur de l'attribut vaut 'Text'. ( un find & replace de <item Name="Text"> par <item Name="Body"> )
Je voudrais effectuer cette transformation avec un xslt mais je tourne en rond depuis des heures : soit j'ai une copie conforme de l'xml de départ, soit je n'ai que les valeurs sans les noeuds !
En résumé, j'ai ceci:
<node1>
..<node2 attrib1="test">
....<item Name="Text">
......<node3 attrib="...">...</node3>
......etc
....</item>
....<item Name="Subject">Ceci est le sujet</item>
...... etc
..</node2>
..<node2 attrib1="un autre test">
....<item Name="Text">
...... etc
....</item>
..</node2>
</node1>
Et je voudrais ceci:
<node1>
..<node2 attrib1="test">
....<item Name="Body">
......<node3 attrib="...">...</node3>
......etc
....</item>
....<item Name="Subject">Ceci est le sujet</item>
...... etc
..</node2>
..<node2 attrib1="un autre test">
....<item Name="Body">
...... etc
....</item>
..</node2>
</node1>
Merci d'avance.