gpt4 book ai didi

java - 如何在 Groovy 中将 XML 转换为对象并插入到 MongoDB 集合中?

转载 作者:行者123 更新时间:2023-12-01 12:20:15 24 4
gpt4 key购买 nike

我有大量的各种 XML 文档,需要使用 Groovy 将其提取到 MongoDB 中。现在我遇到的问题是,没有任何通用方法可以根据一些简单的规则将任何 XML 转换为对象,至少我找不到任何方法。我想做的,采取任何随机 XML,并创建包含时间戳、整数、字符串以及映射的对象,基本上它将根据 XML 结构进行分解。

比如用PHP来做,就是将其转换为JSon,再从JSon转换为Object。现在我想添加一些转换器,对于 XML 中的某些元素,我将运行一些例程,例如转换时间戳,我还想将某些值映射为整数、间隔等。

我查看了 XStream,但它要求我为每个 XML 创建对象定义,否则会抛出“无法解析”的异常。

还有比手动更好的方法吗?在 Groovy 中迭代 XML 并不是很快,我更喜欢使用一些 Java 库来完成它,即使它是动态风格的操作。

日志文件的模拟工具称为 LogStash。它可以在配置中嵌入 JRuby 评估代码,以转换日志文件的某些字段(例如时间戳)并将它们作为对象文档提取到 Elasticsearch 中。

最佳答案

org.json:json 将 XML 转换为 JSON,mongo 可以自己处理这个问题。当然,这一切都适用于纯 java,但在 groovy 中更短......很多

@Grapes([@Grab('com.gmongo:gmongo:1.3'),@Grab('org.json:json:20140107')])
def json = org.json.XML.toJSONObject('''\
<?xml version="1.0"?>
<root>
<of>
<all>Evil</all>
</of>
</root>''')
def db=new com.gmongo.GMongo().getDB("gmongo")
db.test.remove([:])
db.test << com.mongodb.util.JSON.parse(json.toString())
db.test.find().each{ println it}

关于java - 如何在 Groovy 中将 XML 转换为对象并插入到 MongoDB 集合中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26715148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com