[英]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.