3

我最近必须对 XML 文档进行一些数据挖掘。大部分都是临时的,也就是说,我事先没有文档的模式,我只运行了几次查询。一些示例查询是“有多少元素的子元素值大于 0”或“对于某种元素,它们的某些子元素的值的总和是多少”。

在 Java 中运行这样的查询很尴尬,因为 (a) Java DOM 处理确实很麻烦,并且 (b) 我只需要运行这些查询几次,而不是作为应用程序的一部分。

对于这种情况,推荐和当前支持的查询语言和工具是什么?最好是交互式的、免费的/开源的,并且不需要提前将文档存储在数据库中(尽管这是一个选项)。

4

2 回答 2

2

您需要 XQuery。它旨在轻松查询 XML,可以从XQuery 主页上的引用中读取:

XQuery 正在用几行代码替换复杂的 Java 或 C++ [XML 处理] 程序。

我使用开源程序BaseX轻松查询(大量)XML 文件。它还具有很好的 XML 结构交互式可视化功能。

于 2012-06-11T13:41:53.377 回答
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 数据库。我自己的撒克逊产品就是一个例子。

于 2012-06-11T10:41:58.933 回答