2014-11-07 3 views
1

Я только что прочитал, что characters(char[] ch, int start, int length) может быть вызван несколько раз для одного внутреннего XML-данных (например, <name>John Smith</name>).DefaultHandler characters() поведение метода

В моем проекте я должен проанализировать большой XML-файл (1,5 ГБ) и поместить его в базу данных, поэтому я не могу просто вручную просмотреть базу данных и файл, чтобы узнать, все ли в порядке. Так что мой вопрос это безопасно сделать что-то вроде этого:

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() метод вызывается несколько раз?

Заранее благодарен!

ответ

1

Да, это будет перезаписано. Вы должны использовать строковый конструктор и добавить символы. Инициализируйте строковый конструктор в элементе startElement. В конце этого элемента вы можете хранить его в базе данных.