我已收到在下面的格式的服務器的XML響應。(響應編輯)字符
你好 2.世界
你好與世界在消息標籤內以單獨的行出現。 我可以在字符()中顯示Hello World。 但未能在endElement()中獲得相同結果。
如何在SAX解析器的endElement()中的同一標記中的多行中獲取內容。
我已收到在下面的格式的服務器的XML響應。(響應編輯)字符
你好 2.世界
你好與世界在消息標籤內以單獨的行出現。 我可以在字符()中顯示Hello World。 但未能在endElement()中獲得相同結果。
如何在SAX解析器的endElement()中的同一標記中的多行中獲取內容。
不,這是正確的。 characters()
是你應該得到你好和世界的地方,而不是endElement()
。 End元素表示標籤的結束,字符將標籤之間的所有內容都取出。
如果你想在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;
}
}
這個例子很好,但是你應該記住character()可以被多次調用一個元素;如果它已經存在,則需要添加消息 – antlersoft
您的問題令人困惑,因爲您顯示的服務器響應肯定不是XML格式。請以您收到的格式準確顯示XML響應。 – Trevor