XPath选择包含®符号的文本?

时间:2019-03-01 21:34:49

标签: html xml xpath

当XPath出现在HTML文档的文本中时,似乎XPath无法识别该符号。

.//*[contains(text(), '®')]

.//*[contains(text(), '®')]

.//*[contains(text(), 'U+00AE')]

.//*[contains(text(), '®')]

在带有多个®实例的页面上,这些操作都不使用chrome中的检查器返回结果。

有人遇到过这个问题吗? xpath如何找到®?

2 个答案:

答案 0 :(得分:1)

此XPath,

$x("//text()[contains(.,'®')]")

在此页面上返回7个包含®的文本节点(在我回答之前就是这样)。

答案 1 :(得分:1)

此字符的Unicode代码为x2122,因此,如果要使用数字引用,则应为™™

代码xAE和174是Windows-1252表示字符的方式;就XML和XPath而言,这完全不相关。

我不知道您是从哪里想到编写U + 00AE的,这似乎只是一厢情愿。

当然,该字符有可能在XML文件中被错误编码。文件中字符实际使用的编码需要与文件开头XML声明中声明的编码匹配。