SAX (Simple API for XML)將有助於可行的你你在這裏。
不同於DOM解析器,SAX解析器不創建XML文檔的一個內存 表示等速度更快,使用較少的存儲器 。相反,SAX解析器通過調用回調,即通過調用提供給解析器的實例的方法來通知客戶端XML文檔 結構。
下面是一個示例實現:凡在MyHandler
您定義的動作
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
DefaultHandler handler = new MyHandler();
parser.parse("file.xml", handler);
產生類似的文檔/元素的開始/結束的事件時採取。
class MyHandler extends DefaultHandler {
@Override
public void startDocument() throws SAXException {
}
@Override
public void endDocument() throws SAXException {
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
}
// To take specific actions for each chunk of character data (such as
// adding the data to a node or buffer, or printing it to a file).
@Override
public void characters(char ch[], int start, int length)
throws SAXException {
}
}
是否有可能在內存中建立數據庫?如果是,您可以通過stax/sax讀取xml並將數據存儲到db表中。然後你可以使用sql查詢進行驗證。而H2你將運行在一個單獨的jvm中,所以內存不應該成爲問題。 – Hirak