我需要打印使用groovy操作並維護屬性順序的XML。我不在乎它是使用XmlParser/XmlNodePrinter還是XmlSlurper/StreamingMarkupBuilder。我當前的代碼如下:groovy - xml - 保留屬性順序
File file = new File('input.xml')
def root = new XmlSlurper().parse(file)
def admins = root.user.findAll {[email protected]().equals("admin")}
admins.each { admin ->
admin.permission.findAll { [email protected]().equals("RoleManagement")
}.each {
[email protected] = "AdminRoleManagement"
}
}
def smb = new StreamingMarkupBuilder().bind { mkp.yield root }
new File('output.xml').text = groovy.xml.XmlUtil.serialize(smb)
這是我打印出修改後的文件之後被送入程序
<users>
<user username="test1234" role="admin">
<permission interface="com.test.RoleManagement" implementation="com.test.AdminRoleManagement"/>
<permission interface="com.test.UserAdministration" implementation="com.test.UserAdministrationImpl"/>
</user>
</users>
的XML,雖然接口和實現屬性被顛倒。
我已經知道你在想什麼:xml屬性順序無關緊要。那麼,我的老闆的要求就是保持屬性順序B/C已經這麼多年了。實際上我應該使用Java/DOM4J來編寫這個解析器,我試圖向我的團隊展示一些新的東西。任何幫助,將不勝感激。謝謝!
您是否有一些xml示例可以粘貼到展示問題的問題中? – 2012-04-02 15:00:40
添加了一些示例xml - 謝謝 – jeff 2012-04-02 15:06:30