1

xqueryで次のコードを使用してノードのすべての属性を取得しようとしています。論理的には機能するはずですが、機能しません。

$nodesの$nの場合、$ n /@*を返します

4

1 に答える 1

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 
于 2012-10-18T02:56:45.690 に答える