получить атрибут из файла XML - PullRequest
0 голосов
/ 28 июля 2010

Моя запись в XML-файле:

<GlobalView xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
    <rels>
        <Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/>
    </rels>

идентификатор атрибута запроса хочу внутри элемента отношения .... Я использую приведенный ниже запрос, и он работает до элемента Relationship и не дает мне значения атрибута Id.

for $file in doc("C:/Users/Raffay/Desktop/RnDxr.xml")
return $file/GlobalView/child::rels/child::Relationship

Заранее благодарен

Ответы [ 2 ]

0 голосов
/ 28 июля 2010

Используйте

declare default element namespace 
     "http://schemas.openxmlformats.org/package/2006/relationships";

let $vIds := 
    for $file in doc("C:/Users/Raffay/Desktop/RnDxr.xml") 
     return $file/GlobalView/rels/Relationship/@Id

Есть две видимые проблемы с предоставленным исходным кодом :

  1. XML-документ, содержащийся в $file, имеет пространство имен по умолчанию . Без объявления пространства имен элемента по умолчанию все нефиксированные имена в выражении считаются принадлежащими "пространству имен" и ни один узел не будет выбран.

  2. Выражение имеет целью выбрать элемент Relationship , но атрибут Id этого элемента - это то, что действительно нужно.

0 голосов
/ 28 июля 2010

Попробуйте

GlobalView/child::rels/child::Relationship/@Id

или сокращенно

GlobalView/rels/Relationship/@Id
...