有可能吗?
XML:

<node name="unknown">
 <leaf ref="sometext/WHATIWANT/sometext"/>
</node>
<node name="unknown">
 <leaf ref="sometext/sometext/sometext"/>
</node>
<node name="unknown">
 <leaf ref="sometext/sometext/sometext"/>
</node>

WHATIWANT是我知道并希望在搜索中匹配的内容。
我应该创建一个类似于<xsl:variable name="whatiwant" select="contains(node(), '/WHATIWANT/')"/> <!-- unique -->的变量来在进一步的表达式中使用它。
显然没用。
我建议select="contains(node(), '/WHATIWANT/')不检查xml叶中的表达式。
如何使用已知关键字检查XML表达式?
还是选择不同的方式?

最佳答案

字面上leaf元素
这个XPath,

//leaf[contains(@ref, '/WHATIWANT/')]

将选择其属性值包含子字符串leaf的所有@ref元素。
仅叶元素
这个XPath,
//*[contains(@ref, '/WHATIWANT/') and not(*)]

将选择其/WHATIWANT/属性值包含子字符串@ref的所有叶元素。
所有元素
这个XPath,
//*[contains(@ref, '/WHATIWANT/')]

将选择所有元素,无论名称和层次位置如何,其/WHATIWANT/属性值包含子字符串@ref

10-05 21:41