xml - 通过匹配关键字的未知 XML 叶子的 XPath 表达式

标签 xml xslt xpath xslt-1.0

有可能吗?

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 表达式的任何想法? 或者选择不同的方式?

最佳答案

字面意思是元素

这个 XPath,

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

将选择所有 leaf 元素,其 @ref 属性值包含子字符串 /WHATIWANT/


仅叶子元素

这个 XPath,

//*[contains(@ref, '/WHATIWANT/') and not(*)]

将选择所有 leaf 元素,其 @ref 属性值包含子字符串 /WHATIWANT/


所有元素

这个 XPath,

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

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

关于xml - 通过匹配关键字的未知 XML 叶子的 XPath 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45983035/

相关文章:

java - 从 xml 文件执行验证时出错

xpath - Scrapy:如何获得正确的选择器

java - 方法 getTagValue() 在 JAVA 中未定义

php - 在服务器端编辑 XML 文档

xml - XSLT 和 XSL-FO 之间有什么区别?

xml - 在 XSLT/XML 中将日期显示为 DD-MM-YYYY

xml - Golang 将结构索引更改为定义值

java - 在 Android 中使用 SAX 解析 XML

javascript - 在 XSL 中输出 Javascript document.write

postgresql - 如何使用 PostgreSQL 从 xml 检索 C DATA 值