Как я могу получить дочерние узлы из xslt? Вот так выглядит моя структура: ''

<?xml version="1.0" encoding="UTF-8"?>
<objects>
    <object>
        <cats>
            <cat>
                <entity_id>1</entity_id>
            </cat>
            <cat>
                <entity_id>2</entity_id>
            </cat>
            <cat>
                <entity_id>10</entity_id>
            </cat>
    </object>
</objects>

Я пробовал cats / cat / entity_id но тогда я получаю только первый entity_id, как мне получить второй или третий? Спасибо

0
user3038158 23 Июн 2017 в 09:37

2 ответа

Нашел ответ с cats/cat[2]/entity_id я могу получить второй

0
user3038158 23 Июн 2017 в 09:40

Идея делать «перечисляющие» ссылки на конкретные экземпляры - не лучшее решение.

В XSLT 1.0, если вы используете, например, xsl:value-of с возвращением select несколько узлов, тогда xsl:value-of принимает только первый возвращенный элемент, а остальное, видимо, «пропадает».

Чтобы обработать полную возвращаемую последовательность, вам необходимо:

  • сохранить его в переменной,
  • обработать его в цикле (for-each).

Эта функция была изменена в XSLT 2.0, где:

  • все возвращенные товары выводятся,
  • есть атрибут separator, указывающий, что вставлять между последовательными пунктами.
0
Valdi_Bo 23 Июн 2017 в 10:59