2

由于 C# 中的 XMLReader 具有不会一次将整个 XML 文档带入内存的特性,因此对于大型 XML 文件似乎很有帮助。Java有类似的东西吗?我发现 Java 也有一个名为 XMLReader 的类,但它也有同样的作用吗?任何人请澄清。

谢谢

4

2 回答 2

2

有两种加载 XML 的方法:将整个文档加载到内存中的 DOM 文档和读取 XML 并使用处理程序分析内容的 SAX 解析器。

您可能会看一下 SAX 解析器。

于 2012-10-11T08:13:06.337 回答
1

实际上,Java 有一个名为XMLReader的接口。作为一个接口而不是一个类,它实际上并没有任何事情,直到它被实现。

但它是用于解析的 SAX 包的一部分,它不会加载整个文档,使用通过读取 xml 文本触发的事件。

您可能想阅读本教程以开始使用 SAX,和/或只是在 google 中搜索 SAX。

Java 中还有其他 XML 解析包。DOM 确实会加载整个文档,因此对于大文件应该避免使用它。 StAX是一个较新的选项,它基于拉系统而不是 SAX 使用的推系统,但同样不会加载整个文档。

于 2012-10-11T13:13:57.090 回答