2016-06-15 2 views
0

принять этот XML-файл в качестве примера: -получение XPath вместе с именами атрибутов и значений

<xyz version="1.0"> 
    <lives> 
     <life key="1"> 
     <section name="Application123"> 
     <disclosure type="alcohol"> 
    <disclosure type="build"> 
    <internal> 
    <height> data </height> 
    <weight>data</weight> 
    </internal> 
    </disclosure> 
    <disclosure type="drug"> 
    <disclosure type="tobacco"> 
    </section> 
    </life> 
    </lives> 
    </xyz> 

Я хочу, чтобы запрос, который дает мне путь вместе с именами атрибутов и значений атрибутов. Предположим, я запрос для «строить», то я хочу, чтобы все пути следующим образом: -

xyz/lives/life[key="1"]/section[name="Application123"]/disclosure[type="build"]/internal/height 

Я могу получить пути использования (работа в XQuery)

declare function local:path-to-node($nodes as node()*) as xs:string* { 
         $nodes/string-join(ancestor-or-self::*/name(.), ''/'') 

следующим образом:

xyz/lives/life/section/disclosure/internal/height 

Но для этого мне нужны имена атрибутов и их значения. Любые предложения друзей?

ответ

0

В XPath атрибутам требуется @ перед ними.

xyz/lives/life[@key='1']/section[@name='Application123']/disclosure[@type='build']/internal/height 
Смежные вопросы