为了分析一些数据,我目前正在尝试在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中工作?
答案 0 :(得分:3)
您无法在XQuery中返回属性。如果您想返回属性的值,请尝试以下方式:
for $x in /myroot/betweennode/asd
return data($x/@name)