Нет, это правильно. characters()
- это то место, где вы должны получать Hello и World, а не endElement()
. Конечный элемент сигнализирует о конце тега, и символы получают все между тегом.
Если вы хотите что-то сделать в endElements () с 1.Hello 2.World
, то почему бы не создать переменную вверху? Например.
private String message = null;
@Override
public void endElement(String uri, String localName,
String qName)
throws SAXException {
System.out.println(message); //or whatever you want to do with message
}
@Override
public void characters(char ch[], int start, int length)
throws SAXException {
if(isMessage){ //isMessage is set when you run startElement and it runs into the <message> block.
message = new String(ch, start, length);
isMessage = false;
}
}