Используйте
//elem/child/item
это выбирает точно все узлы в документе XML, которые сопоставляются с шаблоном сопоставления elem/child/item
.
Чтобы убедиться, что данный узел $ n соответствует шаблону, используйте это выражение XPath:
count($n | //elem/child/item) = count(//elem/child/item)
В качестве альтернативы (и это может быть более эффективным):
$n[self::item
and
parent::node()
[self::child
and
parent::node()
[self::elem]
]
]
Обратите внимание , тот факт, что узел сопоставляется с шаблоном соответствия, не означает, что шаблон будет выбран для обработки этого узла (или что любой шаблон будет выбран вообще). Выбор шаблона для обработки зависит от существующего <xsl:apply-templates>
, от того, существуют ли другие шаблоны с более высоким приоритетом импорта или приоритетом, которые также соответствуют тому же узлу.