Хотите использовать * условие в Xquery - PullRequest
1 голос
/ 01 апреля 2012

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

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

XQuery:

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

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

Ответы [ 2 ]

0 голосов
/ 01 апреля 2012

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

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

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

0 голосов
/ 01 апреля 2012

В настоящее время вы выбираете все элементы в 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>
...