2008-11-27 134 views
4

如果我在XML文檔中有幾個Section元素,我用什麼XQuery獲取所有name值的列表?XQuery獲取屬性列表

<Section name="New Clients" filePath="XNEWCUST.TXT" skipSection="False"> 

回答

5

在XPath 2.0(這是的XQuery的一個子集)一種將使用下面的表達式來獲得「名稱」的所有的字符串值的序列屬性「部分」元素:

for $attr in //Section/@name 
return string($attr) 

請注意使用「//」的縮寫通常是不好的做法,因爲這可能需要一個整體(子樹)待運行。在文檔結構已知的任何情況下,應該優選更具體的XPath表達式(例如使用特定位置步驟的表達式)。

+1

謝謝,我所需要的是一個返回concat(字符串($ attr),「 - 」)來分隔值。 – ProfK 2008-11-27 18:15:57

0
/Section/@name 
+1

這將選擇XML文檔的唯一頂級元素的「name」屬性節點,如果頂部元素恰巧成爲「部分」元素。 OP要求的是XML文檔中* all *「Section」元素的「名稱」屬性的*字符串值序列*。 – 2008-11-27 17:48:28

1
//Section/@name 

//Section/@name/string(.) 

的字符串值