gpt4 book ai didi

javascript - 如何使用 Node js在XML文件中添加/修改 Node

转载 作者:行者123 更新时间:2023-11-30 16:45:41 28 4
gpt4 key购买 nike

假设我有以下 xml 代码

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<catalog>
<person>
<name>John</name>
<surname>Smith</surname>
</person>
<person>
<name>Abe</name>
<surname>Lincoln</surname>
</person>
<person>
<name>James</name>
<surname>Bond</surname>
</person>
</catalog>

我想添加一个新 Node ,假设如下:

<person>
<name>Tony</name>
<surname>Stark</surname>
</person>

我如何在 Node js 中执行此操作?我的意思是我有一个文件(准确地说是 node js express 中的/routes/index.js),我希望能够添加/修改现有的 xml 文件。我已经尝试过 fs.writeFile(),但这会写入一个全新的文件,并且 fs.appendFile() 添加了一个 header (?xml + 编码和内容)和最后一个 Node 之后的根 Node ,所以我不能将它插入到目录 Node 中。我也无法摆脱 xml 声明 header 。
我一直在使用 .builder() 来做这个,它看起来像这样

router.post('/addnode', function (req, res) {

var obj = {name: "Tony", surname: "Stark"};
var fs = require('fs');
var xml2js = require('xml2js');

var builder = new xml2js.Builder();
var xml = builder.buildObject(obj);

fs.writeFile('public/test.xml', xml, function (err) {
if (err) throw err;
console.log('It\'s saved!');
});
});

最后我想从 addnode 获取数据,所以我不会在这个函数中创建 var obj

最佳答案

除非文件的大小 Not Acceptable 并且您无法整体阅读它们,否则您可以使用xml2js。永远不要使用 XML。

通过使用它,您可以读取文件,将其转换为一个更容易操作的对象,在那里添加您的内容,然后将其转换回 XML 并将结果再次写入原始文件。

查看您的示例,您创建了一个新对象并将其附加到文件中。相反,您应该读取已经存在的数据并修改它们,然后将所有内容写回(不要附加它们)到文件中。为此,您必须使用 xml2js 中的 Parser 对象。

关于javascript - 如何使用 Node js在XML文件中添加/修改 Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31280022/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com