使用 XmlSlurper 的属性顺序会发生变化。
为什么会改变?
我们知道它不会影响 xml 语法。甚至是否有任何方法可以保持订单原样(或)是否有任何方法可以控制订单?
输入:
<root>
<Row Title="n1" Author="a" Genre="s"/>
<Row Title="n2" Author="b" Genre="d"/>
<Row Title="n3" Author="c" Genre="s"/>
<Row Title="n4" Author="d" Genre="f"/>
<Row Title="n5" Author="e" Genre="s"/>
<Row Title="n6" Author="f" Genre="a"/>
<Row Title="n7" Author="g" Genre="d"/>
<Row Title="n8" Author="h" Genre="d"/>
<Row Title="n9" Author="I" Genre="d"/>
</root>
观察到: 使用下面给出的 groovy 代码解析后,
def root = new XmlSlurper().parse(inputfile)
root.children().each { child ->
println child.attributes()
}
[Author:a, Title:n1, Genre:s]
[Author:b, Title:n2, Genre:d]
[Author:c, Title:n3, Genre:s]
[Author:d, Title:n4, Genre:f]
[Author:e, Title:n5, Genre:s]
[Author:f, Title:n6, Genre:a]
[Author:g, Title:n7, Genre:d]
[Author:h, Title:n8, Genre:d]
[Author:I, Title:n9, Genre:d]
为什么会这样?