2011-02-17 8 views
0

내 응용 프로그램에는 검색 옵션이 있습니다. 사용자가 검색 값을 입력하면 웹 서비스에서 값을 얻어야합니다. 나는 큰 webservice 가치를 얻고있다. 내 webservice에서 문자열 값이오고있다. 나는 < >처럼 XML 문자 엔티티 참조를 좋아합니다. 모든 문자를 바꾸고 xml을 파싱하고 싶습니다. 아무도이 일을하고 어떻게 모범을 보여줄 수 있습니까? 큰 xml 파일을 android에서 구문 분석하십시오.

은 내가 메모리 오류 내가 스트림과 노력

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(); 
     } 

벗어나 려하고, unescapexml 문자 StringBuffer과 노력, 나는 그것을 할 수 없습니다입니다. 아무도 예제를 줄 수 있습니까?

답변

3

독자적으로 분석해서는 안됩니다. 더 좋은 방법이 있습니다 - SAX 또는 DOM. 이 자원 (도 및 코드 예제) 다음 두 가지에 대한 유용한 inforamtion에 많이 포함 : 안드로이드 파서 포함에 대해 http://onjava.com/pub/a/onjava/2002/06/26/xml.html

+0

"네가 직접 파싱하지 말아야하지 않니?" –

+0

예, 수정했습니다. –

관련 문제