得到

2012-10-17 30 views
1

我試圖使用XQuery中下面的代碼獲取一個節點的所有屬性,按理它應該工作節點的XQuery的屬性,但它不是得到

在$節點

爲$ N 返回$ N/@ *

+0

究竟你是什麼意思 '是不是'?它給你一個錯誤,返回意外的結果,或返回沒有結果? – Flynn1179

回答

3

屬性節點必須是元素節點的屬性,並且結果樹不能包含獨立的屬性節點。

如果你想製作名稱的順序 - 每個屬性值,做

for $attr in $nodes/@* 
return 
    (name($attr), string($attr), '
') 

例如,給出下面的XML文檔:

<t topA="1"> 
    <a x="2" z="3"> 
    <b message="Hello"/> 
    </a> 
    <c y="5"/> 
</t> 

和將此查詢應用於它

for $nodes in //*, 
    $attr in $nodes/@* 
return 
    (name($attr), string($attr), '&#xA;') 

結果是

topA 1 
x 2 
z 3 
message Hello 
y 5 
+0

謝謝你的回覆,我不知道它爲什麼不起作用,我知道它應該有 – Noor

+1

@Noor,不可能猜出問題出現的那麼少,請編輯問題並提供一個完整的(但儘可能小)查詢,每個人都可以重現。例如,沒有指定源XML文檔,並且缺少定義變量'$ nodes'的部分查詢。請。 –