это мой xml:
<root> <a> <b> <t>1</t> </b> <b> <t>2</t> </b> </a> </root>
Я хочу спросить: вот, скажите мне, существует ли t, но я хочу получить истинный ответ, если b exsit и у него t = 1
танки
Использование :
boolean(/*/*/b[t=1])
При оценке по предоставленному документу XML результат:
true()
Помните : Всегда старайтесь избегать аббревиатуры // , поскольку это приводит к крайне неэффективному обходу всего (под) дерева с корнем в узле контекста.
//
Тест, который вы ищете -
//b/t[text() = '1']
Этот тест теперь можно использовать в template в качестве совпадения, в for-each цикле в качестве селектора или в if в качестве теста - например ::
template
for-each
if
<xsl:template match="//b/t[text() = '1']"> <!-- all t children of b with a content of 1 --> </xsl:template> <xsl:for-each select="//b/t[text() = '1']"> <!-- all t children of b with a content of 1 --> </xsl:for-each> <xsl:if test="//b/t[text() = '1']"> <!-- This is the true case --> </xsl:if>
Примечание:
text()