Я измельчаю большой XML-документ в таблицу и сталкиваюсь с некоторыми проблемами с вложенными структурами узлов, когда извлекаю идентификаторы из документа
Вот пример XML-структуры (стилизованной):
<ROOT>
<ENTITY>
<UNIT>
<ID>TEXT 1.0</ID>
</UNIT>
<ENTITY>
<UNIT>
<ID>TEXT 2.0</ID>
</UNIT>
<ENTITY>
<UNIT>
<ID>TEXT 3.0</ID>
</UNIT>
</ENTITY>
<ENTITY>
<UNIT>
<ID>TEXT 3.1</ID>
</UNIT>
<ENTITY>
<UNIT>
<ID>TEXT 4.0</ID>
</UNIT>
</ENTITY>
</ENTITY>
</ENTITY>
<ENTITY>
<UNIT>
<ID>TEXT 2.1</ID>
</UNIT>
<ENTITY>
<UNIT>
<ID>TEXT 3.2</ID>
</UNIT>
</ENTITY>
</ENTITY>
</ENTITY>
</ROOT>
Как видите, существует несколько вложенных узлов с одинаковыми именами (например, ENTITY и UNIT ), но мне нужны только два первых уровня ..
Я пробовал // UNIT / ID / text (), но я получаю ВСЕХ потомков ...
Моя идея состояла в том, чтобы, если бы я мог вернуть первые два уровня, я мог бы создать таблицу сопоставления, которая связывала бы верхний уровень с его прямыми дочерними уровнями ....
Мой желаемый результат будет выглядеть так:
ID (string) SubID Array(string)
TEXT 1.0 {TEXT 2.0,TEXT 2.1}
TEXT 2.0 {TEXT 3.0,TEXT 3.1}
TEXT 2.1 {TEXT 3.2}
TEXT 3.0 {null}
TEXT 3.1 {TEXT 4.0}
TEXT 4.0 {null}
Если бы вы выбрали 2. уровень ID, вы бы получили, что уровни направляют идентификаторы дочерних уровней и т. Д. И т. Д., Как теоретически может продолжаться вложение.