XQuery无法选择属性

时间:2014-08-14 13:04:14

标签: xml xpath xquery

为了分析一些数据,我目前正在尝试在XQuery中选择一个属性。不幸的是,出于某种原因我不能选择它。

考虑示例文档

<myroot>
 <betweennode>
  <asd name="test">
   <asdasd/>
  </asd>
 </betweennode>
</myroot>

XPath /myroot/betweennode/asd/@name常规返回test,XQuery

for $x in /myroot/betweennode/asd
return $x

返回

<asd name="test">
   <asdasd/>
</asd>

但是XQuery

for $x in /myroot/betweennode/asd
return $x/@name

不起作用(它返回'错误 - 无法在http://www.xpathtester.com/xquery中创建其父项为文档节点的属性节点(名称),并且'[SENR0001]属性无法序列化:属性名称{“testInitialize”} 。'当我在for语句中使用BaseX和doc('mydoc.xml')/ myroot / betweennode / asd时)。

有人能给我一个提示,说明为什么这不起作用,以及选择所有属性如何在XQuery中工作?

1 个答案:

答案 0 :(得分:3)

您无法在XQuery中返回属性。如果您想返回属性的值,请尝试以下方式:

for $x in /myroot/betweennode/asd
return data($x/@name)