2

假设我有非常大的 XML 文件,其中的条目具有<id>标签或id=""属性。

如何通过这个 id 搜索?我可以创建一些搜索索引什么的。

目前我正在使用org.w3.dom. 它有一些搜索方法吗?

更新

我的大 XML 文件是下载的 Wikipedia。它有 40G 大小,拥有数百万条记录。

是否可以使用 Lucene 之类的东西对其进行索引,然后快速搜索 ID?

更新2

试过了BaseX。它吃掉了我的 XML 并创建了 32Gb 的数据库。不明白它是否截断了数据或 32Gb 是因为一些压缩。

不幸的是,按 ID 搜索需要 70-80 秒或更长时间。所以它比 Mediawiki API 查询要长。

4

1 回答 1

3

所以为了读写XML文件,你需要先解析里面的数据。有不同类型的解析器,主要有 DOM、SAX、StAX。

我不推荐使用 DOM 解析器进行 XML 解析,尤其是在解析大型 XML 文件时。因为 DOM 解析器首先将所有内容读入您的内存,然后尝试从中读取数据。如果您的 XML 文件非常大,这是非常低效的。SAX 和 StAX 解析器基本上是 DOM 的改进版本。从这里阅读 Java 中的 StAX 解析器

StAX 解析器教程

我认为 StAX 解析器是最适合读取大型 XML 文件的解析器。

仅供参考,这里也是 SAX 解析器的链接

Java 中的 SAX 解析器教程

于 2013-02-03T09:49:04.223 回答