2011-02-17 77 views
0

在我的應用程序中有一個搜索選項。如果用戶輸入搜索值,我必須從web服務獲取一個值。我正在獲得一個大的webservice值。在我的web服務字符串值即將到來。我喜歡< >像xml字符實體引用一樣。我想要替換所有字符並解析xml。任何人都可以告訴我如何做到這一點,舉個例子嗎?解析android中的大xml文件

StringBuffer試過unescapexml的性格,我收到了內存不足的錯誤

public String unescapeXML(String str) { 
     if (str == null || str.length() == 0) 
      return ""; 

     StringBuffer buf = new StringBuffer(); 
     int len = str.length(); 
     for (int i = 0; i < len; ++i) { 
      char c = str.charAt(i); 
      if (c == '&') { 
      int pos = str.indexOf(";", i); 
      if (pos == -1) { // Really evil 
       buf.append('&'); 
      } else if (str.charAt(i + 1) == '#') { 
       int val = Integer.parseInt(str.substring(i + 2, pos), 16); 
       buf.append((char) val); 
       i = pos; 
      } else { 
       String substr = str.substring(i, pos + 1); 
       if (substr.equals("&amp;")) 
       buf.append('&'); 
       else if (substr.equals("&lt;")) 
       buf.append('<'); 
       else if (substr.equals("&gt;")) 
       buf.append('>'); 
       else if (substr.equals("&quot;")) 
       buf.append('"'); 
       else if (substr.equals("&apos;")) 
       buf.append('\''); 
       else if (substr.equals("&nbsp;")) 
        buf.append(" "); 

       else 
       // ???? 
       buf.append(substr); 
       i = pos; 
      } 
      } else { 
      buf.append(c); 
      } 
     } 
     return buf.toString(); 
     } 

我試過流的,我沒有能夠做到這一點。任何人都可以舉例說明如何做到這一點?

回答

3

您不應該自行分析它。有更好的方法 - SAX或DOM。 該資源包含了很多關於這兩種方式有用inforamtion的(和代碼示例太):http://onjava.com/pub/a/onjava/2002/06/26/xml.html

+0

你的意思是,「應該**不要**自己解析它」嗎? – 2011-02-17 16:29:08