Вот пример того, что я думаю вы пытаетесь выполнить. Я использую XSLT 2.0 и передаю строку поиска в качестве параметра в таблицу стилей. Если вам нужен XSLT 1.0, мы можем легко изменить пример.
Используя ваш образец XML и передавая «AvailabilityStatus» в качестве параметра searchString
, этот XSLT 2.0:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:param name="searchString"/>
<xsl:template match="/">
<xsl:value-of select="ExtendedProperties/ExtendedProperty[contains(lower-case(Key),lower-case($searchString))]/Value"/>
</xsl:template>
</xsl:stylesheet>
производит желаемый (??) вывод:
test
Если вы хотите более точное соответствие, используйте =
вместо функции contains()
и удалите обработку lower-case()
.
EDIT
После прочтения комментариев в третий раз кажется, что вам действительно нужен XPath. XPath в моем примере XSLT, вероятно, не то, что вы ищете. Может быть, что-то вроде этого:
/ExtendedProperties/ExtendedProperty[Key='AvailabilityStatus']/Value