Remplacement du contenu de plusieurs balises XML
Bonjour,
j'aimerai remplacer le contenu des balises <content>, dans le fichier suivant (extrait.xml), par des valeurs différentes (d'un compteur par exemple).
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
| <Document>
<Story>
<StoryPreference/>
<InCopyExportOption/>
<ParagraphStyleRange>
<CharacterStyleRange>
<Content>{Nom_produit}</Content>
</CharacterStyleRange>
</ParagraphStyleRange>
</Story>
<Story>
<StoryPreference/>
<InCopyExportOption/>
<ParagraphStyleRange>
<CharacterStyleRange>
<Content>{Prix_HT}</Content>
</CharacterStyleRange>
</ParagraphStyleRange>
</Story>
<Story>
<StoryPreference/>
<InCopyExportOption/>
<ParagraphStyleRange>
<CharacterStyleRange>
<Content>{Ref_produit}</Content>
</CharacterStyleRange>
</ParagraphStyleRange>
</Story>
</Document> |
Je sais déjà récupérer le contenu de ces balises :
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
| <html>
<body>
<p id="demo"></p>
<script>
var xhttp;
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
accesContenuBalise(this);
}
};
xhttp.open("GET", "origine.xml", true);
xhttp.send();
function accesContenuBalise(xml) {
var contenuBalise;
var i;
var xmlDoc;
var txt = "";
xmlDoc = xml.responseXML;
contenuBalise = xmlDoc.getElementsByTagName("Content");
for (i = 0; i < contenuBalise.length; i++) {
txt += contenuBalise[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("demo").innerHTML = txt;
}
</script>
</body>
</html> |
Je possède également le code me permettant d'ouvrir et d'enregistrer mon fichier :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| // JavaScript File
//fs comme filesystem pour Node
var fs = require('fs');
//lecture du xml
var fichierAmodifier = fs.readFileSync('extrait.xml').toString();
//remplacement du contenu
var compteur = 1;
//ecriture du nouveau fichier
fs.writeFileSync('extrait2.xml', fichierAmodifier); |
Comment puis-je combiner les 2 pour :
- ouvrir le fichier
- récupérer le contenu des balises
- remplacer le contenu de ces balises par les valeurs du compteur (1,2 et 3 ou plus pour un autre fichier plus long par exemple)
- enregistrer le résultat dans un nouveau fichier
Merci beaucoup de votre aide.