java - DefaultHandler strings() 方法行为

标签 java xml saxparser

我刚刚读到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/

相关文章:

java - 构建命令失败,外部 native 问题 android studio

java - 创建新查询 DoubleClick Bid Manager 时出现问题

python - 使用 lxml xpath 按原始顺序获取 xml 中的所有文本节点

javascript - Selenium 从 Div OnClick 元素中获取字符串值

java - JMeter如何读取XML文件?

java - XMLAdapter:可配置的日期格式

javascript - JSON @属性

java - 在 Java 中使用 SAX 处理命名空间

android - 将值从第一个 Activity 传递到android中的第二个 Activity

java - 无需 Web 调用的 SAX/StAX 解析器