在 Groovy 中对 XML 进行排序
我已经查看了有关使用 Groovy 对 XML 进行排序的文档,
def records = new XmlParser().parseText(XmlExamples.CAR_RECORDS)
assert ['Royale', 'P50', 'HSV Maloo'] == records.car.sort{ it.'@year'.toInteger() }.'@name'
但我想做的是对 XML 进行排序,然后返回排序后的 xml 字符串。我知道在完成排序后我可以完全重建 XML。
我知道我可以对 XML 运行 XML 转换来对其进行排序
def factory = TransformerFactory.newInstance()
def transformer = factory.newTransformer(new StreamSource(new StringReader(xslt)))
transformer.transform(new StreamSource(new StringReader(input)), new StreamResult(System.out))
,但我一直在寻找一些 Groovy 魔法来让我更轻松
I have looked at the documentation on sorting XML with Groovy
def records = new XmlParser().parseText(XmlExamples.CAR_RECORDS)
assert ['Royale', 'P50', 'HSV Maloo'] == records.car.sort{ it.'@year'.toInteger() }.'@name'
but what I am trying to do is sort the XML and then return the xml string sorted. I know I can completely rebuild the XML after i am done sorting.
I know I can run an XML Transformation on the XML to get it sorted
def factory = TransformerFactory.newInstance()
def transformer = factory.newTransformer(new StreamSource(new StringReader(xslt)))
transformer.transform(new StreamSource(new StringReader(input)), new StreamResult(System.out))
BUT I was looking for some Groovy magic to make it easier for me
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
解决方案是直接替换
记录
中的car
列表。不确定是否存在更多魔法!A solution is to replace directly the list of
car
within therecords
. Not sure if more magic exists!