Что есть // в XSLT? - PullRequest
       13

Что есть // в XSLT?

7 голосов
/ 27 июля 2010

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

Ответы [ 2 ]

8 голосов
/ 27 июля 2010

что // в xslt? например ($ CurrentPage // узел)

В XPath сокращение:

// - это сокращение от /descendant-or-self::node()/

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

Следовательно,

($currentPage//node)

обозначает

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

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

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

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

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

4 голосов
/ 27 июля 2010

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

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

Например:

elementa//elementb

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

<elementa>
  <someelement>
    <elementb>
    </elementb>
  </someelement>
</elementa>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...