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