2010-07-27 2 views
0

Моей запись XML-файл:атрибута Достаньте из 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> 

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

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

Поблагодарив заранее

ответ

0

Попробуйте

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

или в сокращенном виде

GlobalView/rels/Relationship/@Id 
+0

объявить пространство имен элементов по умолчанию "http://schemas.openxmlformats.org/package/2006/relationships"; для $ file in doc ("C: /Users/Raffay/Desktop/RnDxr.xml") return $ file/GlobalView/rels/Relationship/@ Id этот код дает мне следующую ошибку: «Ошибка последовательной сериализации XQuery! иметь узел атрибута или узел пространства имен в качестве дочернего ".... :(- – user399493

0

Использование:

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 имеет пространство имен по умолчанию. Без объявления default element namespace все неподписанные имена в выражении считаются принадлежащими «без пространства имен», и ни один узел не будет выбран.

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

+0

объявить пространство имен элементов по умолчанию " http://schemas.openxmlformats.org/package/2006/relationships "; для $ file in doc («C: /Users/Raffay/Desktop/RnDxr.xml») return $ file/GlobalView/rels/Relationship/@ Id Этот код дает мне следующую ошибку: «Ошибка последовательной сборки XQuery! У узла документа может не быть узел атрибута или узел пространства имен в качестве дочернего ".... :( – user399493

+0

@ user399493: Да, предполагалось, что вы будете assig n эти атрибуты к переменной. Я отредактировал свой ответ, и теперь код явно делает это. –

+0

С учетом следующей ошибки: Ошибка выполнения XQuery! Неожиданный конец инструкции – user399493

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