【问题标题】:How to get all attribute names, not values of a particular node from the XML?如何从 XML 中获取所有属性名称,而不是特定节点的值?
【发布时间】:2017-06-03 06:45:11
【问题描述】:

假设我有一个 XML-

<SearchPage ID="123" version="1.3" xmlns="http://some/path">
   .....some child elements
</SearchPage>  

如何从中获取所有属性名?

【问题讨论】:

  • 我才意识到我并没有真正改进问题的标题,而是实际上错过了“不是”并将意思转过来。对不起!无论如何,我的回答仍然符合你的问题。

标签: xml xpath xquery marklogic


【解决方案1】:

使用name() 函数,如果您想省略属性命名空间,请使用local-name()

let $node := <SearchPage ID="123" version="1.3" xmlns="http://some/path">
               .....some child elements
             </SearchPage>
for $attribute in $node/attribute()
return $attribute/name()

结果:

ID
version

【讨论】:

  • 不会返回属性值而不是属性名
  • $some-attribute/name() 返回属性的名称,而不是值。
  • 只是提到 $attribute 将具有属性名称及其值。
  • 但是添加 /name() 会选择它的名称,这就是您所要求的。我不确定您遇到了什么问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-02
  • 1970-01-01
相关资源
最近更新 更多