Что//в XSLT?

Что // в XSLT? (например. $currentPage//node)

7
задан Wayne Burkett 30 March 2011 в 17:12
поделиться

2 ответа

что // в xslt? например. ($currentPage//node)

В XPath аббревиатура:

// является сокращением для. /descendant-or-self::node()/

Значение некоторых атрибутов инструкций xslt (например, атрибута select) должно быть выражением XPath.

Поэтому

($currentPage//node)

означает

($currentPage/descendant-or-self::node()/node)

Это выбирает все элементы с именем node, которые являются детьми узлов, содержащихся в переменной $currentPage или потомками узлов, содержащихся в переменной $currentPage.

Обратите внимание, что в представленном выражении node() - это node-test (он выбирает все типы узлов на оси descendant-or-self::, такие как элементы, текстовые узлы, комментарии и processing-инструкции.

С другой стороны, somePath/node является сокращением для somePath/child::node и выбирает только элементы с именем node, которые являются дочерними элементами контекстного узла.

Я настоятельно рекомендую не использовать имя node для элемента, чтобы избежать этой путаницы.

8
ответ дан 6 December 2019 в 21:08
поделиться

Похоже, это часть XPath , которую можно использовать в XSLT для поиска в дереве заданных узлов, соответствующих пути. Это технология, аналогичная селекторам CSS.

Двойная косая черта выполняет поиск по потомкам на любой глубине.

Например:

elementa//elementb

будет соответствовать любому элементу elementb, который является потомком элемента elementa, даже если между ними есть другие уровни, например:

<elementa>
  <someelement>
    <elementb>
    </elementb>
  </someelement>
</elementa>
4
ответ дан 6 December 2019 в 21:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: