xml2js能否在单个父节点下生成混合文本与元素节点?对应buildObject入参是什么
xml2js 完全支持生成你需要的混合内容XML结构,只需要按期望的节点顺序,将文本节点用$text字段标识,和元素节点一同放在父元素的数组中传入即可。
示例代码
const { Builder } = require('xml2js'); // 可以按需配置Builder的格式化参数 const builder = new Builder({ renderOpts: { pretty: true, indent: ' ' } }); // 传入buildObject的参数结构 const input = { p: [ { $text: 'Some text ...' }, { bold: 'Bold text' }, { $text: '... some more text ...' }, { italic: 'Italic text' }, { $text: '... and yet more text.' } ] }; const outputXml = builder.buildObject(input); console.log(outputXml);
输出结果
执行上述代码后生成的XML结构和你要求的完全一致:
<p> Some text ... <bold>Bold text</bold> ... some more text ... <italic>Italic text</italic> ... and yet more text. </p>
如果你需要给子元素添加属性,可使用xml2js默认的$字段声明属性、_字段声明元素文本即可,示例:
// 带属性的bold元素写法 { bold: { _: 'Bold text', $: { weight: '700' } } }
内容的提问来源于stack exchange,提问作者Ben Whitmore
相关产品推荐
相关产品推荐

