我已收到服务器的xml响应,格式如下。(编辑回复)
1。你好 2.世界
Hello和World存在于消息标记内的单独行中。 我能够在characters()中显示Hello World。 但是在endElement()中没能得到相同的结果。
如何在SAX解析器的endElement()中的同一个标记内的多行中获取内容。
答案 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;
}
}