[英]How do I parse a large XML file using Java?
我正在尝试使用 Java 解析 XML 文件。
XML 文件大小仅为 256 kb。 我正在使用 DOM 解析器来解析 XML 文件。 如何解析大型 XML 文件内容?
下面是解析文件内容的方法:
public Document parse_a_string(StringBuffer decodedFile) {
Document doc1 = null;
try {
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder db = factory.newDocumentBuilder();
InputSource inStream = new InputSource();
// problem here
inStream.setCharacterStream(new StringReader(decodedFile.toString()));
doc1 = db.parse(inStream);
} catch (Exception e) {
}
return doc1;
}
文件内容在StringBuffer
参考对象中, decodedFile
,但是当我将它设置为StringReader
它只接受字符串。
对于大型文档(尽管我不会称您为大型文档),我会使用StAX 。
查看JDOM XML 解析库。 它领先于本地 Java 解析器数英里,在我看来,相当优越。
对于您提供的代码,您实际上必须遍历 DOM 树并检索元素。 有关使用 XML 文档的更多信息,请参阅此处或有关使用 XML的官方 Java 教程。
不要将文件读入 String/StringReader 和所有爵士乐。 直接通过db.parse(new FileInputStream(...)).
解析文件db.parse(new FileInputStream(...)).
将文件读入内存只会浪费内存和时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.