Что //
в XSLT? (например. $currentPage//node
)
что // в xslt? например. ($currentPage//node)
В XPath аббревиатура:
Значение некоторых атрибутов инструкций 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
для элемента, чтобы избежать этой путаницы.
Похоже, это часть XPath , которую можно использовать в XSLT для поиска в дереве заданных узлов, соответствующих пути. Это технология, аналогичная селекторам CSS.
Двойная косая черта выполняет поиск по потомкам на любой глубине.
Например:
elementa//elementb
будет соответствовать любому элементу elementb, который является потомком элемента elementa, даже если между ними есть другие уровни, например:
<elementa>
<someelement>
<elementb>
</elementb>
</someelement>
</elementa>