2012-04-01 4 views
1

Я хочу извлечь теги в XML, который содержит условие атрибута как name="var". Но я не знаю, какой элемент имеет это условие атрибута, так я могу использовать следующий запрос XQuery:Хотите использовать * условие в Xquery

<ab> 
    <c name="var"> 
     <d name ="var"> 
      <e> 
      </e> 
     </d> 
     <f> 
     </f> 
    </c> 
</ab> 

XQuery:

doc('abc.xml')//ab/*[@name="var"] 

У меня есть XML порожденной CLANG, который не имеет значения для тегов, но все присутствует только как атрибут.

+0

У вас есть вопросы? – Marcin

ответ

0

В настоящее время вы выбираете все элементы в abc.xml, которые являются дочерними элементами элемента с именем <ab> и имеют данный атрибут.

Как вы хотите «извлекать тег в XML, который содержит» и документ при условии, я предполагаю, что вы на самом деле хотите, чтобы запросить все элементы внутри верхнего уровня элемента <ab>, которые будут написаны, как

doc('abc.xml')/ab//*[@name="var"] 

и возврат оба элемента <c> и <d> со своими дочерними узлами.

<c name="var"> 
    <d name="var"> 
    <e/> 
    </d> 
    <f/> 
</c> 

<d name="var"> 
    <e/> 
</d> 
0

Похоже, это должно быть DUP

doc('abc.xml')//*[@name="var"] 

должно работать, но не может быть особенно эффективным, в зависимости от вашего процессора XQuery.

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