我正在使用 xml2js从我的寄存器构建一个 .xml。对于每个元素,我需要设置具有相同名称的键,示例:键:具有属性 id 的产品
预期结果:
<products>
<product id="H12896">
<name>Grand Hotel New York</name>
<price>120.80</price>
</product>
<product id="...">
...
</product>
</products>
我的代码:
var products = [];
_.each(list, function(element) {
var obj = {
name: element.title,
price: element.price,
};
products.push(obj);
});
var builder = new xml2js.Builder({rootName: 'products'});
var xml = builder.buildObject(products);
fs.writeFile('pacotes.xml', xml, (err) => {
if (err) throw (err);
});
输出结果:
<products>
<0>
<name>Mountain Do</name>
<price>0</price>
</0>
</products>
我检查了文档,但还没有。 谢谢
最佳答案
您有没有使用 XMLBuilder 的原因? https://github.com/oozcitak/xmlbuilder-js/
XMLBuilder 似乎更适合您想要做的事情,而且更受欢迎(例如:上个月有 400 万次下载)。 xml2js 更适合用 JavaScript 阅读,但 XMLBuilder 绝对是您想要使用的。
如果我没看错的话……xml2js 只是在 XMLBuilder 上构建。
var builder = require('xmlbuilder'),
xml = builder.create('root'),
products = xml.ele('products'),
product;
_.each(list, function(element) {
product = products.ele('product');
product.att('id', element.id);
product.ele('name', null, element.name);
product.ele('price', null, element.price);
});
xml = xml.end();
fs.writeFile('pacotes.xml', xml, (err) => {
if (err) throw (err);
});
关于javascript - 使用 xml2js 构建具有相等子键的 xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35901692/