2015-06-15 2 views
0

Ниже приведен пример xml.
Что такое xpath для извлечения всех узлов атрибутов (независимо от имени атрибутов) с указанным значением?

<library> 
    <book id="aaa"> 
     <title id="bbb">Harry Potter and the Half Blood Prince</title> 
     <author id="ccc" ref="zzz"/> 
    </book> 
    <book id="ddd"> 
     <title id="eee">Harry Potter and the Philosophers Stone</title> 
     <author id="fff" ref="zzz"/> 
    </book> 
    <author-details id="zzz"> 
     <firstName id="ggg">Joanne</firstName> 
     <lastName id="hhh"/>Rowling</lastName> 
    </author-details> 
</library> 

Есть еще много книг в этом примере и многие детали автора, а также. Что мне нужно, это для извлечения всех узлов атрибутов, что бы ни было именем атрибутов, с указанным значением.
Например, в приведенном выше примере я хочу, чтобы xpath возвращал следующие узлы. (все узлы атрибутов, которые содержат значение «zzz», что всегда будет именем атрибутов).

  1. ref = "zzz" из первого книжного узла.
  2. ref = "zzz" со второго книжного узла.
  3. и, id = "zzz" из узла сведений об авторе.

Я пишу код Java и хочу изменить значение id = 'zzz' на другое значение.

ответ

2

Хорошо //@* дает вам все узлы атрибутов, добавляет предикат //@*[. = 'zzz'], и у вас есть все узлы атрибутов со значением zzz.

Смежные вопросы