我刚刚读到characters(char[] ch, int start, int length)
可以多次调用一个内部XML数据(例如<name>John Smith</name>
)。
在我的项目中,我必须解析大的XML文件(1.5 GB)并将其放在数据库中,所以我不能手动浏览数据库和文件以查看是否一切正常。所以我的问题是做这样的事情是安全的:
public void characters(char[] ch, int start, int length) throws SAXException {
dataForDatabase = new String(ch,start,length);
}
dataForDatabase
是此解析器的类成员。
之后在endElement ...
public void endElement(String uri, String localName, String qname) throws SAXException {
putDataToDatabase(dataForDatabase);
}
如果多次调用dataForDatabase
方法,赢得characters()
被覆盖?
提前致谢!
答案 0 :(得分:1)
是的,它会被覆盖。您应该使用stringbuilder并附加字符。在startElement中初始化stringbuilder。在endElement中,您确实可以将其存储到数据库中。