簡體   English   中英

使用 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',
  ]
}

確切的格式無關緊要,但middleleftright之間。 子元素的順序對我來說很重要。 使用fast-xml-parser ,我得到的是以下內容:

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

我不介意不同的格式,但是我丟失了關於<b>middle</b>節點的 position 的信息。 從 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 文本節點將合並為一個,團隊成員解釋說這“不是錯誤,而是預期的行為”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM