使用xpath编码无法匹配精确符号“&”“ <”“>”

时间:2019-04-04 15:29:19

标签: xpath

我必须找到XML注释标记中存在的确切符号&<>

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

我已经使用了代码//comment()[matches(.,'[\&|\<|\>]')],它不起作用..请不要使用十六进制值来查找这种情况。

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

我认为我的观点在先前的声明中并未得到正确传达。我必须将UTF8 XML文件转换为命名实体XML文件。 UtF8 xml将具有这些符号,如格式&<>。但是,转换后的命名实体XML文件将具有这些符号,如格式&amp; &lt; &gt;。我必须在两个XML文件中使用两个不同的xpath条件。在命名实体XML中,xpath代码//comment()[matches(.,'[&<>]]))足以找到&符号,例如&amp ;,&x38; (在XML文件中(&将自动转换为&amp;因此XML文件中没有&符号)。假设用户在更正过程中在命名实体文件中错误地插入了utf8符号“&”,则我仅需查找并突出显示“& “不是”&amp;“,”&#38:“ ..希望清楚