使用 fast-xml-parser 分别获取文本节点(以正确的顺序)?
Get text nodes separately (in the correct order) with fast-xml-parser?
无论我尝试什么选项,我似乎都将所有文本节点聚集在一起,但没有关于内部 XML 节点插入位置的任何信息。用一个简单的例子更容易解释:
<a>left <b>middle</b> right</a>
我希望这能给我这样的东西:
{
tag: 'a',
children: [
'left ',
{ tag: 'b', children: ['middle'] },
' right',
]
}
确切的格式并不重要,但 middle
介于 left
和 right
之间。子元素的顺序对我很重要。使用 fast-xml-parser
,我得到的是以下内容:
{
"a": {
"#text": "left right",
"b": "middle",
}
}
我不介意不同的格式,但我丢失了有关 <b>middle</b>
节点位置的信息。从 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>
是否有允许我保留文本节点顺序的选项?
不幸的是,答案似乎是这个选项 在 fast-xml-parser
中不可用,根据我发现的这个问题:https://github.com/NaturalIntelligence/fast-xml-parser/issues/175. Text nodes will get merged as one, and the team member explains这是 "not a bug but expected behavior".
无论我尝试什么选项,我似乎都将所有文本节点聚集在一起,但没有关于内部 XML 节点插入位置的任何信息。用一个简单的例子更容易解释:
<a>left <b>middle</b> right</a>
我希望这能给我这样的东西:
{
tag: 'a',
children: [
'left ',
{ tag: 'b', children: ['middle'] },
' right',
]
}
确切的格式并不重要,但 middle
介于 left
和 right
之间。子元素的顺序对我很重要。使用 fast-xml-parser
,我得到的是以下内容:
{
"a": {
"#text": "left right",
"b": "middle",
}
}
我不介意不同的格式,但我丢失了有关 <b>middle</b>
节点位置的信息。从 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>
是否有允许我保留文本节点顺序的选项?
不幸的是,答案似乎是这个选项 在 fast-xml-parser
中不可用,根据我发现的这个问题:https://github.com/NaturalIntelligence/fast-xml-parser/issues/175. Text nodes will get merged as one, and the team member explains这是 "not a bug but expected behavior".