xml - 用于匹配文档中除特定元素中的文本节点之外的所有文本节点的 Xpath

标签 xml xslt xpath

尝试在 XSLT 中构建模板以匹配特定的 Xpath 案例。

在这个示例 XML 文档中,我想匹配整个文档中的所有文本,<x> 中除外。 :

<root>
 <tag1> I want this text </tag1>
 <tag2> I want this text </tag2>
 <x> I don't want to match on this text </x>
 <tag3> I want this text </tag3>
</root>

关于这个 Xpath 有什么想法吗?我正在尝试为其构建一个模板,以针对此特定案例转换我的文档。

到目前为止,我想出的是这样的东西,但它不起作用:

<xsl:template match="text()[not(matches(.,x))]">

有什么想法吗?

最佳答案

当你写 .它采用文本节点的字符串值,而不是父节点的节点名称。匹配需要一个字符串参数

你可以这样写:

<xsl:template match="text()[not(matches(name(..),'x'))]">

或者更好:

<xsl:template match="text()[not(parent::x)]">

关于xml - 用于匹配文档中除特定元素中的文本节点之外的所有文本节点的 Xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13312603/

相关文章:

xml - 如何选择除特定元素之外的特定元素的所有兄弟元素

java - Scala/Java 是否不遵守 w3 "excess dtd traffic"规范?

java - 在 ListView 中选择一行

xml - 使用 XSLT <xsl :when>? 时如何指定 "equals to”

java - 通过 xslt 和 xsl 生成 pdf 时根据 pdf 的页码打印一些文本 :fo

c# - XPath对于带有不符合特定条件的子节点的所有节点?

xml - 用于检索最旧/最早节点的 Xpath 表达式

php - 如何在 PHP 中以属性为键的关联数组形式获取 XML 数据

java - 使用 Java 验证 XSD

image - 删除 XSLT 字符串中的最后一个字符