我最近必须对XML文档进行一些数据挖掘。其中大多数都是临时的,即我没有事先提供文件的架构,而且我只运行了几次查询。一些示例查询是“有多少元素具有大于0的子元素值”或“每种元素的元素,它们的一些子元素的值的总和是什么”。
在Java中运行此类查询很尴尬,因为(a)Java DOM处理非常麻烦,(b)我只需要运行这些查询几次,而不是作为应用程序的一部分。
此方案的推荐和当前支持的查询语言和工具是什么?最好是交互式,免费/开源,并且不需要提前将文档存储在数据库中(尽管可以选择)。
答案 0 :(得分:2)
你需要XQuery。它的目的是轻松查询XML,可以从XQuery homepage上的引文中读取:
XQuery正在用几行代码替换复杂的Java或C ++ [XML处理]程序。
我使用开源程序BaseX轻松查询(大量的)XML文件。它还具有XML结构的良好交互式可视化。
答案 1 :(得分:1)
听起来像是对XQuery的描述。
示例查询
count(//element[sub-element gt 0])
//some-element/sum(sub-element)
实际上这两个都是XPath 2.0,它是XQuery 1.0的一个子集,但你迟早会想要XQuery 1.0,它比XPath 2.0更广泛地实现,所以去吧。有很多XQuery处理器可以在Java环境中工作,有或没有XML数据库。我自己的撒克逊产品就是一个例子。