首页 > 解决方案 > xmlbuilder2 使用 JS 对象设置文本和属性

问题描述

我正在使用 xmlbuilder2 从 JS 对象创建 XML 文档。

这工作得很好:

const { create } = require('xmlbuilder2');

const obj = {
  root: {
    '@att': 'val',
    foo: {
      bar: 'foobar'
    },
    baz: {}
  }
};

const doc = create(obj);
const xml = doc.end({ prettyPrint: true });
console.log(xml);

但是,我想获得以下 XML:

<?xml version="1.0"?>
<root att="val">
  <foo>
    <bar myattr="hello">foobar</bar>
  </foo>
  <baz/>
</root>

如何设置bar元素的属性和内容?我在网上没有找到任何示例,我尝试过使用@text但它没有用。

谢谢!

标签: node.js

解决方案


我想通了(在 Tomalak 的帮助下!)正确的方法是:

const { create } = require('xmlbuilder2');

const obj = {
  root: {
    '@att': 'val',
    foo: {
      bar: {"@myattr":"hello", "#":'foobar'}
    },
    baz: {}
  }
};

const doc = create(obj);
const xml = doc.end({ prettyPrint: true });
console.log(xml);

推荐阅读