【问题标题】:get attributes of a node xquery获取节点 xquery 的属性
【发布时间】:2012-10-17 22:53:35
【问题描述】:

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

对于 $n 在 $nodes 返回 $n/@*

【问题讨论】:

  • “它不是”到底是什么意思?它是给您错误、返回意外结果还是不返回任何结果?

标签: attributes xquery nodes


【解决方案1】:

属性节点必须是元素节点的属性,结果树不能包含独立的属性节点。

如果您想为每个属性生成一系列名称 - 值,请执行以下操作

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 

【讨论】:

  • 感谢回复,不知道为什么不行,我知道应该有
  • @Noor,由于显示的内容如此之少,无法猜测问题出在哪里,请编辑问题并提供每个人都可以重现的完整(但尽可能小)的查询。例如,没有指定源 XML 文档,并且缺少定义变量 $nodes 的查询部分。请。
猜你喜欢
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 2011-02-06
  • 1970-01-01
相关资源
最近更新 更多