You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 05:45:00