【问题标题】:Get text nodes separately (in the correct order) with fast-xml-parser?使用 fast-xml-parser 分别获取文本节点(以正确的顺序)?
【发布时间】:2020-02-23 14:37:09
【问题描述】:

无论我尝试什么选项,我似乎都将所有文本节点聚集在一起,而没有任何关于内部 XML 节点插入位置的信息。用一个简单的例子更容易解释:

<a>left <b>middle</b> right</a>

我希望这会给我这样的东西:

{
  tag: 'a',
  children: [
    'left ',
    { tag: 'b', children: ['middle'] },
    ' right',
  ]
}

确切的格式无关紧要,但middle 介于leftright 之间。子元素的顺序对我来说很重要。使用fast-xml-parser,我得到的是以下内容:

{
  "a": {
    "#text": "left  right",
    "b": "middle",
  }
}

我不介意不同的格式,但我丢失了有关&lt;b&gt;middle&lt;/b&gt; 节点位置的信息。从 XML 文件的 JavaScript 树版本来看,无法区分这些文件,因为它们都解析为相同的结构。

<a>left  right<b>middle</b></a>

<a><b>middle</b>left  right</a>

<a>left <b>middle</b> right</a>

<a>le<b>middle</b>ft  right</a>

是否有一个选项可以让我保留文本节点的顺序?

【问题讨论】:

    标签: javascript node.js xml xml-parsing fast-xml-parser


    【解决方案1】:

    不幸的是,答案似乎是这个选项根本 fast-xml-parser 中不可用,根据我发现的这个问题:https://github.com/NaturalIntelligence/fast-xml-parser/issues/175。文本节点将合并为一个,团队成员explains 认为这“不是错误,而是预期行为”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-14
      • 2011-07-05
      • 1970-01-01
      • 2017-09-10
      • 2013-04-01
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      相关资源
      最近更新 更多