2011-04-22 5 views
0

이 API를 구글 여기 SAX 파서 결과 XML을 전달하는 요청을 할 SAX 파서에 httpget에서어떻게 ... 난

먼저 요청을 결과를 모두 코드가 있습니다 통과 않습니다

HttpClient hclient = new DefaultHttpClient(); 
HttpGet get = new HttpGet("http://www.google.com/ig/api?weather=Cardiff"); 

HttpResponse hrep = hclient.execute(get); 
HttpEntity httpEntity = hrep.getEntity(); 

그런 다음 파서 :

SAXParserFactory saxpf = SAXParserFactory.newInstance(); 
SAXParser saxp = saxpf.newSAXParser(); 
XMLReader xr = saxp.getXMLReader(); 
ExHandler myHandler = new ExHandler(); 
xr.setContentHandler(myHandler); 
xr.parse(); 

이이 작업을 수행하는 올바른 방법이며 어떻게 두 코드를 연결합니까. 미리

답변

1

덕분 SAXParser를 객체는 입력 스트림 핸들러에 걸릴 수있다. 그래서 뭔가 같은 :

SAXParser saxParser = factory.newSAXParser(); 
XMLParser parser = new XMLParser(); 
saxParser.parse(httpEntity.getContent(),parser); 

의 getContent() 메소드가 반환과 HttpRequest에의 입력 스트림과 XmlParser가 개체 내가 (가정) 즉 XML을 구문 분석하는 방법의 정의를 포함 만든 단지 클래스입니다.

EDIT * 당신은 정말 SAXParser를위한 전체 API를 읽어야한다, 그것이 가지고 여러 가지 오버로드 된 메서드 :

무효 구문 분석 (InputSource의이는 DefaultHandler DH입니다) 은 Using XML로 InputSource의 주어진 내용을 구문 분석 지정된 DefaultHandler.

void parse (InputSource is, HandlerBase hb) 지정된 HandlerBase를 사용하여 주어진 InputSource의 내용을 XML로 구문 분석합니다.

공극 파싱 (의 InputStream는 DH는 DefaultHandler이다) 지정된 DefaultHandler를 사용해 XML로서 지정된 InputStream 인스턴스의 컨텐츠를 파싱.

무효 구문 분석 (의 InputStream 인,의 DefaultHandler의 DH, 문자열 시스템 ID) 구문 분석, 지정된 DefaultHandler를 사용해 XML로서 지정된 InputStream 인스턴스의 컨텐츠. 지정된 HandlerBase를 사용해 XML로서 지정된 InputStream 인스턴스의 컨텐츠를 파싱 (의 InputStream는이 HandlerBase HB이다) 해석

보이드.

무효 구문 분석 (의 InputStream는이 HandlerBase의 HB, 문자열 시스템 ID) 구문 분석, 지정된 HandlerBase를 사용해 XML로서 지정된 InputStream 인스턴스의 컨텐츠.

일부 메서드는 InputSource를 사용하고, 일부 메서드는 InputStream을 사용합니다.

+0

parse 메서드가 InputSource를 사용하는 eclipse에 따르면 여전히 작동하지 않습니다. httpEntity를 입력 소스로 변환 할 수있는 방법이 있습니까? – Amanni

+0

기본적으로 http 요청의 응답을 파서에 전달할 수있는 방법을 알아야합니다. – Amanni