아래는 oncreate()안에 넣은 소스이고요
String queryUrl = "http://www.google.co.kr/ig/api?weather=seoul&ie=utf-8&oe=utf-8";
URL url = new URL("queryUrl);
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser parser = spf.newSAXParser();
WeatherHandler handler = new WeatherHandler();
parser.parse(new InputSource(url.openStream()), handler);
아래는 xml분석하기 위해 만든 클래스인대요
class WeatherHandler extends DefaultHandler {
@Override
public void startDocument() throws SAXException {
}
@Override
public void endDocument() throws SAXException {
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
Log.d("test", "hi");
}
}
각 메소드안의 내용은 생략했습니다...
로그를 찍어보면
startDocument()
endDocument()
startElement()
endElement()
모두 다 호출 됩니다.
근데 characters 이놈이 아무리 해봐도 호출되지가 않습니다.
인코딩의 문제 때문에 그럴까요? 도움 부탁드립니다.




xml 원문을 보시면 태그 사이에 텍스트가 없죠. 즉 public void characters(char[] ch, int start, int length)메소드를 타지 않습니다.
정보들은 태그의 속성(어트리뷰트)로 존재 하네요.
태그 시작할 때 속성을 읽어서 처리하세요.