У меня есть проблема с запросом XPath, который я выполняю для системы CMS Sitecore.
Этот запрос хорошо работает:
/root/content/Meta-Data/Tips /*
Но когда я пробую это:
/root/content/Meta-Data/Tips /* [@SomeAttribute ='somekey']
Я получаю ошибку, которая говорит "Конец строки, ожидаемой в положении 22", которое является, где символ тире найден. У меня создалось впечатление, что тире не был специальным символом в XML... я делающий что-то не так здесь? Я должен закодировать это в некотором роде? Или действительно ли это - ошибка в синтаксическом анализаторе XPath? Какие-либо предложенные обходные решения?
Измените это:
/root/content/Meta-Data/Tips/*[@SomeAttribute='somekey']
На это:
/root/content/#Meta-Data#/Tips/*[@SomeAttribute='somekey']
Согласно спецификации XML для символов в именах тегов, дефис должен быть действительный символ. Я провел небольшое тестирование XPath с этим сайтом и нашел его полезным для сравнения результатов с другими синтаксическими анализаторами.