2008-11-27 154 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(.) 

的字符串值