Используйте это выражение XPath :
//PRO
. Выбирает все элементы в документе XML с именем PRO
.
. XPath 1.0 W3C Рекомендация ,
//
- это сокращение от /descendant-or-self::node()/
Поэтому приведенное выше выражение XPath эквивалентнодлиннее:
/descendant-or-self::node()/PRO
Обычно рекомендуется по возможности избегать использования псевдооператора //
, так как он вызывает сканирование всего XML-документа,Когда возможно.используйте как можно больше контекста для создания более конкретного выражения XPath, чтобы его можно было оценивать более эффективно.
Например, если в данном документе XML ясно, что можно выбрать требуемый элемент c
используя выражение XPath:
/a/b/c
используйте его и никогда не используйте:
//c
Разница в скорости выполнения иногда составляет порядка сотен или тысяч раз.
В качестве альтернативы, в XSLT используйте только сопоставление с шаблоном - это может быть самое короткое преобразование, которое обращается и обрабатывает все (и только) элементы PRO
в любом документе XML:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="PRO">
<!-- Your code here -->
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>