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

3
似乎XPath在HTML文档中的文本中不识别®符号。
.//*[contains(text(), '®')]

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

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

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

在一个包含多个 ® 的页面上,使用 Chrome 检查器时,这些方法都无法返回结果。

有人遇到过这个问题吗?XPath 如何定位 ® ?


1
一些相关讨论... https://www.experts-exchange.com/questions/20736407/XML-Displaying-Trademark-Symbol.html - Mitya
2个回答

0

这个字符的Unicode代码是x2122,如果要使用数字引用,应该是™™

代码xAE和174是Windows-1252表示该字符的方式;在XML和XPath方面完全无关紧要。

我不知道你从哪里得到写U+00AE的想法,那似乎只是一厢情愿。

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


U+00AE是Unicode映射,那时我只是随便尝试了一下哈哈。 - user6499789

0

这个 XPath,

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接