字符

2011-07-12 40 views
0

我已收到在下面的格式的服務器的XML響應。(響應編輯)字符

你好 2.世界

你好與世界在消息標籤內以單獨的行出現。 我可以在字符()中顯示Hello World。 但未能在endElement()中獲得相同結果。

如何在SAX解析器的endElement()中的同一標記中的多行中獲取內容。

+0

您的問題令人困惑,因爲您顯示的服務器響應肯定不是XML格式。請以您收到的格式準確顯示XML響應。 – Trevor

回答

1

不,這是正確的。 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; 
    } 
} 
+2

這個例子很好,但是你應該記住character()可以被多次調用一個元素;如果它已經存在,則需要添加消息 – antlersoft