Предположим, XML-файл имеет следующую структуру (ниже). Все «семейные» узлы различной глубины находятся под корневым элементом. (Извиняюсь за возможные неправильные термины; новое в этом материале XML.)
Под узлом "Семейство" есть слои "Предков" или поколений. Таким образом, в приведенном ниже примере «Дэвид» (уровень 1) имеет отца по имени «Самуил» (уровень 2), у которого есть отец по имени «Фред» (уровень 3) и т. Д.
Есть несколько "Семейные "узлы. Каждое семейство может иметь различное количество слоев «предков». В приведенном ниже примере «Предки» имеют глубину 5 поколений. Другие «семейные» узлы могут иметь глубину 3 или 8 поколений. Число поколений в каждом узле «Семейство» неизвестно.
Мне нужно отображать имена следующим образом:
David ->Samuel->Fred->John->Frank->Robert (for a 5 generation list)
Mary->Lisa->Karen (for a 3 generation list)
Так что мне нужно перебрать каждый узел Семейства как «глубокий»'(количество «поколений»), как эта семья, и составьте список имен, как указано выше. Количество поколений может быть разным для каждой семьи.
<root>
<Family>
<ID>7588784011</ID>
<Name>David</Name>
<Ancestors>
<Family>
<ID>157050011</ID>
<Name>Samuel</Name>
<Ancestors>
<Family>
<ID>157028011</ID>
<Name>Fred</Name>
<Ancestors>
<Family>
<ID>154606011</ID>
<Name>John</Name>
<Ancestors>
<Family>
<ID>133141011</ID>
<Name>Frank</Name>
<IsCategoryRoot>1</IsCategoryRoot>
<Ancestors>
<Family>
<ID>133140011</ID>
<Name>Robert</Name>
</Family>
</Ancestors>
</Family>
</Ancestors>
</Family>
</Ancestors>
</Family>
</Ancestors>
</Family>
</Ancestors>
</Family>
<Family>
// more ancestors of a varying number
</Family>
</root>
Спасибо.
Добавлено
Я достиг определенного прогресса в этом,с кодом, как показано в разделе Мой код здесь https://3v4l.org/GV0UV. Код содержит XML-содержимое, имена членов семьи которого начинаются с разных номеров для каждого семейства.
Я получаю имена выходных данных каждого члена семьи, но все имена находятся в одной строке. Намерение состоит в том, чтобы имена каждой семьи отображались в отдельной строке.
Поэтому мне нужно вставить <br>
, когда семья изменится.