XPath и специальные символы - PullRequest
4 голосов
/ 24 апреля 2010

У меня проблема с запросом XPath, который я выполняю для системы Sitecore CMS.

Этот запрос работает нормально:

/ корень / содержание / Meta-Data / Советы / ** * 1005

Но когда я попробую это:

/ корень / содержание / Meta-Data / Советы / * [@ SomeAttribute = 'somekey']

Я получаю сообщение об ошибке «Конец строки ожидается в позиции 22», где находится символ тире. У меня сложилось впечатление, что черта не была специальным символом в XML ... я что-то здесь не так делаю? Нужно ли мне это каким-то образом кодировать? Или это ошибка в парсере XPath? Любые предлагаемые обходные пути?

Ответы [ 2 ]

12 голосов
/ 24 апреля 2010

Изменить это:

/root/content/Meta-Data/Tips/*[@SomeAttribute='somekey']

К этому:

/root/content/#Meta-Data#/Tips/*[@SomeAttribute='somekey']
0 голосов
/ 24 апреля 2010

Согласно XML-спецификации для символов в именах тегов дефис должен быть допустимым символом. Я провел небольшое тестирование XPath с на этом сайте и нашел его полезным для сравнения результатов с другими анализаторами.

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