XPath для выбора текста, содержащего символ? - PullRequest
0 голосов
/ 02 марта 2019

Кажется, что XPath не распознает символ ®, когда он появляется в тексте в документе HTML.

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

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

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

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

Ни один из них не возвращает результат с использованием инспектора в chrome на странице, на которой имеется несколько экземпляров® на это.

Кто-нибудь когда-нибудь сталкивался с этой проблемой?Как xpath может найти ®?

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

Код Unicode для этого символа - x2122, поэтому, если вы хотите использовать числовую ссылку, это должно быть ™ или ™.

Коды xAE и 174 - это то, как Windows-1252 представляетперсонаж;это совершенно неактуально для XML и XPath.

Я понятия не имею, откуда у вас идея написать U + 00AE, это просто кажется желанным.

Конечновозможно, что символ неправильно закодирован в файле XML.Кодировка, фактически используемая для символа в файле, должна соответствовать кодировке, объявленной в объявлении XML в начале файла.

0 голосов
/ 02 марта 2019

Этот XPath,

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

возвращает 7 текстовых узлов, содержащих ® на этой странице (то есть до того, как я ответил).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...