【发布时间】:2017-05-23 00:38:34
【问题描述】:
我有一个这样的 XML
<root>
<aree fbc="123" ad="12" b="123"/>
<beee c="12" a="144"/>
</root>
需要按字母顺序对属性名称进行排序。像这样:
<root>
<aree ad="12" b="123" fbc="123"/>
<beee a="144" c="12"/>
</root>
我有一个 xQuery 代码,但它不能正常工作。请帮忙。我需要替换为节点的真实名称
select @data.query('<root>{for $i in root/* return <aaa> {for $j in $i/@* order by local-name($j) return $j} </aaa> }</root>')
【问题讨论】:
-
真的吗?属性顺序很重要?
-
@kjhughes 我知道 :)
-
@Backs:我知道你知道。 :) 现在我们必须说服 Ivan。
-
可以按字母顺序对属性进行排序,但是如果您不将结果存储为字符串(您不应该),这将不会被保留。无论您在这里做什么,都不能保证下次以相同的顺序获取属性。在大多数情况下,这样做是为了让 XML 文档在字符串级别上可比较,或者创建一个散列来检查操作。除了属性的顺序之外,也不能保证无关紧要的空格。 Read about the limits here
标签: sql-server xml xquery xquery-sql