获取节点xquery的属性

时间:2012-10-17 22:53:35

标签: attributes xquery nodes

我正在尝试使用xquery中的以下代码获取节点的所有属性,逻辑上它应该可以工作,但它不是

$节点中的$ n         返回$ n / @ *

1 个答案:

答案 0 :(得分: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