Получить текстовые узлы отдельно (в правильном порядке) с fast-xml-parser? - PullRequest
0 голосов
/ 28 октября 2019

Независимо от того, какие варианты я пробую, мне кажется, что все текстовые узлы объединены в кластеры без какой-либо информации о том, где были вставлены внутренние узлы 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>. Исходя из древовидной версии JavaScript XML-файла, невозможно провести различие между этими файлами, поскольку все они разбираются в одну структуру.

<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>

Есть ли опция, которая позволит мне сохранить порядоктекстовые узлы?

1 Ответ

0 голосов
/ 28 октября 2019

К сожалению, похоже, что ответом является то, что эта опция просто недоступна в fast-xml-parser, согласно этой проблеме, которую я обнаружил: https://github.com/NaturalIntelligence/fast-xml-parser/issues/175. Текстовые узлы будут объединены в один,а член команды объясняет , что это "не ошибка, а ожидаемое поведение".

...