Символы, не отображаемые в endElement () парсера SAX - PullRequest
0 голосов
/ 12 июля 2011

Я получил ответ xml от сервера в следующем формате (ответ отредактирован)

1.Hello 2. World

Hello и World присутствуют в отдельных строках внутри тега сообщения.Я могу отобразить Hello World в символах ().Но не удалось получить то же самое в endElement ().

Как получить содержимое в несколько строк в одном теге в endElement () анализатора SAX.

1 Ответ

1 голос
/ 13 июля 2011

Нет, это правильно. 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;
    }
}
...