javascript - 使用 xml2js 构建具有相等子键的 xml?

标签 javascript xml node.js

我正在使用 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/

相关文章:

javascript - Inappbrowser loadstop 事件不起作用

JavaScript、获取、API

javascript - Chrome : Simulate keypress events on input text field using javascript

xml - MSXML VBA : Validating XML against XSD: "The ' ' namespace provided differs from the schema's targetNamespace.“

javascript - String.replace with/and\in Nodejs 不同于 Chrome?

node.js - Rethinkdb竞争条件创建表

javascript - 从移动设备共享时,移动博客网站不会重定向到桌面

java - 当 ScrollView 不工作时,如何使以下 Android Activity 可滚动?

java - 生命周期配置未涵盖的插件执行 : org. apache.maven.plugins :maven-toolchains-plugin:1. 1:toolchain

javascript - Breeze Sequelize 与 MSSQL 可能吗?