2015-06-12 4 views
0

Я выполняю запрос XPath в Adobe CRX, и я пытаюсь найти список узлов, содержащих строку «Xbox Live». То, что я получаю, это узлы, которые содержат как «Xbox», так и «Live». Я задаюсь вопросом, каким будет запрос для получения точного соответствия моей строки.Query XPath в Adobe CRX

Текущий XPath запросов: /jcr:root/content//*[jcr:contains(., 'Xbox Live')] order by @jcr:score

Пример контента, который я хочу вернулся:

  • Это предложение требует аккаунт Xbox Live
  • Ваш Xbox Live имя пользователя не является действительным
  • XBox Live это будущее!

Пример содержания, что я не хочу вернулся:

  • Xbox и Playstation будет жить вечно
  • Смогу ли я жить дольше, мой Xbox?
  • Xbox из прожита Wii

ответ

1

Ваш XPath/XQuery в порядке, который должен возвращать элементы, содержащие точную фразу "Xbox Live", предполагая, что Adobe CRX имеет достойный XPath 1.0 осуществления.

Возможный улов с помощью . в будет оцениваться конкатенация всех узлов-потомков. Например, следующий parent элемент также считается соответствовал contains(., 'Xbox Live') предиката:

<parent>Xbox <child>Live</child></parent> 

Если вы хотите оценить в отдельных текстовых узлов и возвращает родительский элемент из соответствующих текстовых узлов, попробуйте следующие вместо:

/jcr:root/content//text()[jcr:contains(., 'Xbox Live')]/parent::* order by @jcr:score