我正在从SQL Server查询生成XML文件。
我对元素排序有一些疑问。
例如,有下面的简单代码。
<test>
<tree abc="123"/>
<tree abc="789"/>
<tree-order abc="456"/>
</test>
如您所见,树和树顺序是不同的元素,我想按属性排序
<test>
<tree abc="123"/>
<tree-order abc="456"/>
<tree abc="789"/>
</test>
像这样。
任何人都有解决这个问题的好主意吗?
谢谢你。
对不起,我有以下详细问题
AS是
<Main>
<test>
<tree abc="123"/>
<tree abc="789"/>
<tree-order abc="456"/>
</test>
<test>
<tree abc="123"/>
<tree abc="789"/>
<tree-order abc="456"/>
</test>
</Main>
成为 :
<Main>
<test>
<tree abc="123"/>
<tree abc="456"/>
<tree-order abc="789/>
</test>
<test>
<tree abc="123"/>
<tree abc="456"/>
<tree-order abc="789/>
</test>
</Main>
谢谢你。
如果要重新排序现有的xml,可以使用XQuery
:
declare @data xml = '
<test>
<tree abc="123"/>
<tree abc="789"/>
<tree-order abc="456"/>
</test>
'
select @data.query('<test>{for $i in test/* order by $i/@abc return $i}</test>')
结果:
<test>
<tree abc="123" />
<tree-order abc="456" />
<tree abc="789" />
</test>
[sql fiddle demo](http://sqlfiddle.com/#!3/d41d8/26941)
更新:
要对多个节点重新排序,可以使用XQuery,如下所示:
select @data.query('
element Main {
for $j in Main/test
return element test {
for $i in $j/* order by $i/@abc return $i
}
}
')
[sql fiddle demo](http://sqlfiddle.com/#!3/d41d8/26968)
更新2
要按属性的整数值排序,请使用cast as <type>
:
select @data.query('
element Main {
for $j in Main/test
return element test {
for $i in $j/* order by $i/@abc cast as xs:integer?
return $i
}
}
')
[sql fiddle demo](http://sqlfiddle.com/#!3/d41d8/26982)
问题内容: 我想按属性排序。这是我的代码… 现在我想按属性将其排序,例如在另一个活动中。但是我不知道该怎么做。有人知道吗? 问题答案: 您需要实现,例如: 然后像这样排序:
问题内容: 如果我有一个JavaScript对象,例如: 有没有一种方法可以基于值对属性进行排序?这样我最终 问题答案: 将它们移动到一个数组,对该数组进行排序,然后将其用于您的目的。这是一个解决方案: 拥有数组后,您可以按自己喜欢的顺序从数组中重建对象,从而完全实现了您打算要做的事情。在我所知道的所有浏览器中都可以使用,但这取决于实现的怪癖,并且可能随时中断。您永远不应假设JavaScript对
问题内容: 我有一个清单清单: 如果要按一个元素(例如,高/短元素)排序,可以通过进行。 如果我想作为排序依据两个高大和颜色,我可以为每个元素做排序两次,一次,但有一个更快的方法? 问题答案: 键可以是返回元组的函数: 或者,你可以使用来实现相同的效果(速度更快,并且避免了Python函数调用): 并请注意,你可以在此处使用而不是使用,然后重新分配:
问题内容: 我已经寻找了一段时间,想要一种对Javascript对象进行排序的方法,如下所示: 并按名称的字母顺序排序以获得: 我找不到任何可以做到这一点的代码。谁能给我些帮助吗? 问题答案: 根据定义,键在对象中的顺序是未定义的 ,因此您可能无法以适应未来发展的方式进行操作。相反,您应该考虑在实际向用户显示对象时对这些键进行排序。无论它在内部使用什么排序顺序都没有关系。 按照惯例,大多数浏览器将
问题内容: 我正在尝试按属性对一些数据进行排序。这是我tought应该可以工作的示例,但事实并非如此。 HTML部分: JS部分: 结果: A-> AData B-> BData C-> C数据 …恕我直言,应如下所示: C-> C数据 B-> BData A-> AData 我是否错过了某些东西(可以在这里进行JSFiddle的实验)? 问题答案: AngularJS的orderBy过滤器仅支持
问题内容: 在Swift 2.0中,您将如何按属性对自定义对象数组进行排序?我知道在Swift 1.2中,这是使用sorted()和sort()完成的。但是,这些方法在Xcode 7 beta 4中不再起作用。谢谢! 例如: 问题答案: 在Swift 2中: 您可以使用方法,使用来比较两个日期: 或者,如果您想对原始数组进行排序,则可以: 在Swift 3中 返回数组的排序形式,请使用,而不是 排