我使用 SAX 解析一个很大的 xml 文件,该文件很大并且有很多重复的节点。并使用JAXB将解析后重复的dom节点映射到javabeans中进行持久化。
这是我的代码片段。我使用 JAXB 的partial unmarshalling
示例代码,它在每次启动节点解析时创建 Unmarshaller 对象。我可以将它重用于整个 xml 解析或缓存它以用于多个 xml 解析吗?
public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
...
if (namespaceURI.equals("") && localName.equals( “product” )) {
Unmarshaller unmarshaller = null;
try {
//I want to reuse it, not create it in each startElement method
unmarshaller = jaxbContext.createUnmarshaller();
} catch (JAXBException e) {
throw new SAXException(e);
}
...