有谁知道如何使用 NodeJS 修改 XML 文件的标签值
这是我的 XML 文件:
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
我想改变<node>
to <n>
我在 Windows 上运行 NodeJS。到目前为止我有以下代码;
var parser = new xml2js.Parser();
function xmltxt(response, postData){
fs.readFile( './foo.xml', function(err, data) {
parser.parseString(data, function (err, result) {
console.dir(result.note.to[0]);
});
});
}
这会读取节点值,但我需要修改标签值。
请帮忙。
Using 该死的简单 XML https://www.npmjs.com/package/damn-simple-xml您可以执行以下操作:
var Serializer = require("damn-simple-xml"); // constructor
var dsx = new Serializer();
var fs = require("fs");
var out = fs.createWriteStream("./foo2.xml");
dsx.deserialize(fs.createReadStream("./foo.xml"), function(err, root) {
if (err) {
console.log(err);
return;
}
dsx.serialize({
name: "n",
data: root.data
},
function(err, xmlpart, level) {
if (err) {
console.log(err);
return;
}
out.write(xmlpart);
if (level === 0) { // XML streaming done
out.end(); // closes the stream.
}
});
});
在前面的示例中,我们收到一个root
反序列化回调中的对象。该对象包括root.name
(即根节点的名称)和root.data
这是反序列化 XML 文档中的实际数据。
然后在序列化时,我们返回相同的root.data
对象,但我们将根节点的名称更改为问题中指定的“n”。
由于该死的简单 XML 可以使用流来输入 xml 并将其内容作为 XML 块输出,因此该库的内存占用非常小。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)