Comment append à une certaine ligne de fichier?

Je souhaite append un fichier à un fichier, mais je souhaite commencer à l’append avant la fin de la balise . apparaît. Comment puis je faire ça?

 var fs = require("fs"); fs.appendFile('somefile.xml', 'Content') 

J’ai sth comme ça mais il insère ‘contenu’ à la fin du fichier, et je le veux dans la ligne spécifique avant ‘mot clé’ spécifique

Ce n’est peut-être pas la solution la plus simple, mais au moins, le travail devrait être fait. Je ne l’ai pas testé, il pourrait donc nécessiter quelques modifications. Il lit le fichier et, une fois terminé, crée le nouveau fichier en supprimant la , en ajoutant le contenu, puis en ajoutant à nouveau la à la fin.

 var fs = require('fs'); var xmlFile; fs.readFile('someFile.xml', function (err, data) { if (err) throw err; xmlFile = data; var newXmlFile = xmlFile.replace('', '') + 'Content' + ''; fs.writeFile('someFile.xml', newXmlFile, function (err) { if (err) throw err; console.log('Done!'); }); }); 

Une bonne approche consiste à scinder le fichier en un fichier wrapper et un fichier body. Le wrapper contient uniquement la balise la plus externe et une référence d’entité au fichier de corps. Votre programme peut ensuite append à la fin du fichier body, tandis que toute personne lisant le fichier au format XML doit lire le fichier wrapper. Le fichier wrapper ressemblera à ceci:

  ]> &e; 

L’utilisation de “xml” comme nom d’élément est d’ailleurs une mauvaise pratique. Tous les noms commençant par “xml” sont réservés pour une utilisation future par le W3C.

Cette approche peut ne pas fonctionner si vous lisez le XML dans un navigateur. Je pense que les parsingurs XML de certains navigateurs ne supportent pas les entités externes.