그리고 파싱을 위해 XmlPullParser를 사용중이구요.
파싱하는중에 계속 오류가 떠서 일단 그냥 처음부터 끝까지 읽어보자는 심보로
따로 원하는부분 검색해서 데이터를 검출하지 않고 처음부터 끝까지 읽기만 해도 중간에 에러가 뜹니다.
밑에꺼는 Log 부분에 남겨진 에러 메시지인데
안드로이드 앱개발한지 3일되는 저한테는 무슨말인지 잘모르겟네요;;
도움쫌 주세요..ㅠ
org.xmlpull.v1.XmlPullParserException: expected: /div read: body (position:END_TAG </body>@1376:8 in .InputStreamReader@43e8cac8)
HtmlCleaner cleaner = new HtmlCleaner();
CleanerProperties props = cleaner.getProperties();
Writer str = new StringWriter();
//ByteArrayOutputStream ostream = new ByteArrayOutputStream();
props.setOmitComments(true); // 주석제거
props.setOmitDeprecatedTags(true);
props.setOmitUnknownTags(true);
props.setUseCdataForScriptAndStyle(true);
props.setRecognizeUnicodeChars(true);
props.setUseEmptyElementTags(true);
props.setAdvancedXmlEscape(true);
props.setTranslateSpecialEntities(true);
props.setBooleanAttributeValues("empty");
TagNode node = null;
try{
node = cleaner.clean(url);
}catch(IOException e ){
e.printStackTrace();
}
SimpleXmlSerializer se = new SimpleXmlSerializer(props);
try{
se.writeXml(node, str, "UTF-8"); //웹 페이지의 인코딩 방식.
//se.writeXmlToStream(node, System.out);
}catch(IOException e){
e.printStackTrace();
}
return str.toString();
현재 HTML에서 XML로 변환해주는 소스입니다.
음..말씀하시는게 먼지 잘 이해가 안되서 소스 첨부했습니다.ㅠ
파싱부분에서의 소스도 같이 올리겠습니다.
이걸로 3일째 검색하고 해봐도 해결이 안되서..ㅠㅠ
가지고 오는 HTML이 2600줄 가까이 되지만..
System.out 으로 확인해보면 마지막 </HTML> 까지 모두 출력해줘서 변환부분에서 오류는 없는거 같은데..ㅠ
InputStream istream = new ByteArrayInputStream(strstream.getBytes("UTF-8"));
XmlPullParserFactory parserFactory = XmlPullParserFactory.newInstance();
parserFactory.setNamespaceAware(true);
XmlPullParser parser = parserFactory.newPullParser();
parser.setInput(istream, "utf-8");
String book = null; // 어떤 책 가지고 올것인지
String Tag = null;
String Text = null;
int EventType = parser.getEventType();
while(EventType != XmlPullParser.END_DOCUMENT){
if(EventType == XmlPullParser.START_DOCUMENT){
Log.i("START_DOCUMENT", "START_DOCUMENT");
}
else if(EventType == XmlPullParser.END_DOCUMENT){
Log.i("END_DOCUMENT", "END_DOCUMENT");
}
else if(EventType == XmlPullParser.START_TAG){ }
EventType = parser.next();
}
} catch (Exception e) {
e.printStackTrace();
Log.e("Error", e.toString());
}



