XML-документ находится в пространстве имен по умолчанию .
Итак, решение должно учитывать это:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:x="http://www.plmxml.org/Schemas/PLMXMLSchema">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:value-of select="count(//x:UserValue[@title = 'status' and @value= '0'])"/>
</xsl:template>
</xsl:stylesheet>
, когда это преобразованиеприменяется к предоставленному XML-документу :
выражение XPath, которое возвращает количество указанных узлов, оценивается и выводится это число :
2
Обратите внимание : выражения XPath, использующие псевдо-оператор //
, могут быть очень медленными, поэтому, если структура документа XML известна, следует использовать эквивалентное выражение XPath, которое нене содержит //
.
Например, , если я правильно понял структуру предоставленного документа, это лучшее выражение XPath:
count(/*/*/x:UserData/x:UserValue[@title = 'status' and @value= '0'])