字符未显示在SAX解析器的endElement()中

时间:2011-07-12 19:48:18

标签: java android saxparser

我已收到服务器的xml响应,格式如下。(编辑回复)

1。你好 2.世界

Hello和World存在于消息标记内的单独行中。 我能够在characters()中显示Hello World。 但是在endElement()中没能得到相同的结果。

如何在SAX解析器的endElement()中的同一个标记内的多行中获取内容。

1 个答案:

答案 0 :(得分:1)

不,这是正确的。 characters()是你应该获得Hello和World的地方,而不是endElement()。结束元素表示标记的结尾,字符可以在标记之间获取所有内容。

如果你想用1.Hello 2.World在endElements()中做一些事情,为什么不在顶部创建一个变量呢?例如。

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;
    }
}
相关问题