【问题标题】:Unable match exact symbols "&" "<" ">" using xpath coding无法使用 xpath 编码匹配精确符号“&”“<”“>”
【发布时间】:2019-08-26 10:26:03
【问题描述】:

我必须在 XML 注释标签中找到确切的符号 &amp;&lt;&gt;

<!--Q1: find & < > symbols--> ..

我使用了代码//comment()[matches(.,'[\&amp;|\&lt;|\&gt;]')],但它不起作用..不要使用十六进制值来查找这种情况。

【问题讨论】:

标签: xpath


【解决方案1】:

如果您使用的是 xslt,则代码本身是用 XML 编码的。因此,您需要正确转义符号:

//comment()[matches(.,'[&amp;&lt;&gt;]')]

在大多数其他语言中,根本不需要转义

//comment()[matches(.,'[&<>]')]

【讨论】:

  • 我必须找到并突出显示 UTF8 字符符号 & 所以命名实体和十六进制值不应该用于在 xpath 代码中查找
  • 你还没有理解答案(这是正确的)。您需要一个包含字符 &amp;amp;&lt;&gt; 的 XPath 表达式。要在 XSLT 等 XML 环境中编写这样的表达式,可以将它们写为 &amp;amp; 等。另一方面,如果 XPath 表达式出现在 Java 字符串文字中,则不需要转义。 (您需要明确此 XPath 表达式的编写位置)。
【解决方案2】:

我认为我的观点在之前的陈述中没有正确传达。我必须将 UTF8 XML 文件转换为命名实体 XML 文件。 UtF8 xml 将具有这些符号,如格式 & 。然而,在转换命名实体 XML 文件后,这些符号将具有格式 & amp;

【讨论】:

    猜你喜欢
    • 2015-10-26
    • 2013-09-15
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    相关资源
    最近更新 更多