2013-03-21 5 views
0

나는 안드로이드 프로그래밍에 익숙하다. 나의 요구 사항은 웹 서비스를 호출하는 것이다. 나는 성공적으로 안드로이드에서 응답을 구문 분석하는 웹 services.how로부터 응답을 얻었다. 당신은 SimpleXmlParser를 사용하려고 할 수 있습니다안드로이드에서 xml 데이터의 문자열을 구문 분석하는 방법

HttpResponse response = httpclient.execute(httppost); 
      String str=response.getStatusLine().toString(); 

      System.out.println("========URL STATUS========"+str); 

      HttpEntity r_entity = response.getEntity(); 

      if(r_entity != null) { 
       result = new byte[(int) r_entity.getContentLength()]; 
       if(r_entity.isStreaming()) { 
        is = new DataInputStream(r_entity.getContent()); 
        is.readFully(result); 

       } 
      } 

      httpclient.getConnectionManager().shutdown(); 
      String responsedata= (new String(result).toString()); 
+0

어떤 종류의 형식 당신은 응답을 얻을? – rajeshwaran

+0

우선 EntityUtils.toString()을 살펴보고 두 번째로 SimpleXML 또는 다른 것과 같은 xml 파서를 사용합니다. –

답변

3

아래 샘플은 돔 파서 용입니다.

DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance(); 
DocumentBuilder db = dbf.newDocumentBuilder(); 
InputSource is = new InputSource(); 
StringReader sr=new StringReader(result.toString()); 
is.setCharacterStream(sr); 
Document doc = db.parse(is); 
NodeList nodes = doc.getElementsByTagName("your root tag"); 

//get your other tag elements. 

http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/. 돔 파서의 예.

http://www.mkyong.com/java/how-to-read-xml-file-in-java-sax-parser/. 색소 파서의 예.

Dom은 w3c 기반 파서입니다. 돔은 색소폰보다 느리다. 트리 노드를 사용하고 mmeory에 있어야하기 때문이다. 따라서 DOM 파서를 사용하여 큰 데이터를 파싱하는 것은 좋지 않습니다.

SAX는 dom보다 빠릅니다. 큰 xml 데이터에 권장됩니다.

위 링크는 두 가지 예를 보여줍니다. 위 파서 중 하나를 사용하여 XML 태그에서 파싱하고 값을 가져옵니다.

+0

결과를 파싱하지만 전체 결과를 하나의 string.how로 나누어 XML 태그로 분할하는 것이 현명합니까? – user2195073

+0

u는 색소폰이나 DOM 파서 또는 간단한 xml 파서를 사용하여 XML을 구문 분석해야합니다. – Raghunandan

0

:

점점 응답 코드입니다. 기본 Android 클래스입니다. DOM xml 파서보다 간단합니다.

관련 문제