我刚刚读到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()
则被覆盖方法被多次调用?
提前致谢!
最佳答案
是的,它将被覆盖。您应该使用字符串生成器并附加字符。在 startElement 中初始化 stringbuilder。在 endElement 中,您确实可以将其存储到数据库中。
关于java - DefaultHandler strings() 方法行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26798718/