Что я пытаюсь сделать, это взять определенный узел, в примере <person>
, и объединить его в список всех доступных узлов человека. Вот мой пример источника:
<group groupName="The Little Rascals">
<peopleInGroup>
<people>
<person>
<name value="John Doe">
<birthdate value="01/01/1953">
</person>
<person>
<name value="John Doe 2">
<birthdate value="01/01/1953">
</person>
<childrenInGroup>
<person>
<name value="Jane">
<birthdate value="01/01/1973">
</person>
<person>
<name value="Suzie">
<birthdate value="01/01/1970">
</person>
</childrenInGroup>
</people>
</peopleInGroup>
</group>
В этом случае я хочу получить список всех элементов <person>
независимо от уровня и зациклить каждый из них. Список будет выглядеть примерно так:
<person>
<name value="John Doe">
<birthdate value="01/01/1953">
</person>
<person>
<name value="John Doe 2">
<birthdate value="01/01/1953">
</person>
<person>
<name value="Jane">
<birthdate value="01/01/1973">
</person>
<person>
<name value="Suzie">
<birthdate value="01/01/1970">
</person>
Единственная сортировка, которую я хотел бы сделать в этом случае, может быть по Дню Рождения. Я думал, что это что-то вроде Deep Copy узла <person>
, но я не знаю, как будет выглядеть его реализация.
После того, как список создан, идея будет заключаться в том, чтобы перебирать список по каждому элементу следующим образом:
<xsl:for-each select="$persons">
<xsl:value-of select="@name"/>
<xsl:value-of select="@birthday"/>
</xsl:for-each>
Спасибо за помощь!