2013-10-15 3 views
0

Файл XML является:Как я могу использовать XPath для разрешения следующих значений тегов?

<xml-fragment xmlns:xyz="http://someurl"> 
    <xyz:xyzcontent> 
    <contentattribute> 
     <key>tags</key> 
     <value>tag1, tag2</value> 
    </contentattribute> 
    </xyz:xyzcontent> 
... 

Я попытался следующие:

XPathExpression createdDateExpression = xpath.compile("/contentattribute/key/attribute::tags/value"); 

ответ

1

Есть несколько проблем с запросом.

  • XML-сломан (корневой тег не закрыт) - вероятно, просто копировать/вставить ошибка
  • Вы начинаете где-то прямо в середине дерева XML, но на самом деле пытаетесь запросить от корня узел. Используйте начальную или самостоятельную ось // в начале.
  • Какой атрибут вы запрашиваете, используя ось attribute? Здесь ничего нет.
  • Где вы зарегистрировали пространства имен? Что такое пространство имен xyz, так или иначе? Я думаю, это на самом деле vp, но вы запутались не полностью (или не даете все соответствующие части документа).
  • Использование предикатов и сравнение строк для фильтрации по шагам оси.

Попробуйте следующее:

  • Убедитесь, чтобы зарегистрировать пространство имен, взгляните на ссылку для этого (или дать больше информации).
  • Использование запроса XPath //contentattribute[key='tags']/value
Смежные вопросы