안드로이드 개발 질문/답변
(글 수 45,052)
풀파서로 파싱할때요. xml파일이 아닌 xhtml은 안되는건가요?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="en">
<head>
<title>시내버스 -사이트에 오신것을 환영합니다.</title>
<td style="text-align: center; padding-top: 5px; padding-bottom: 5px;" class="even endtd"><div style="background-image:url(/images/bbs/nosun_bg.gif); background-repeat: no-repeat; padding-left: 8px; width: 45px; height: 19px; padding-top: 3px;"><a href="javascript:change_noserndo('101');">101</a></td>
그리고 이 문서를 파싱해서요 출력하고 싶은데요 이상하게 title부분은 출력된느데
나머지 101 이랑 양덕 밑에 있는 버스이동경로가 이상하게 안받아짐 ㅠㅠ
while(parserEvent != XmlPullParser.END_DOCUMENT)
{
switch(parserEvent)
{
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.START_TAG:
tag = parser.getName();
break;
case XmlPullParser.TEXT:
if(tag.equals("title")){
region = parser.getText();
items.add(region);
}
if(tag.equals("td")){
region = parser.getText();
items.add(region);
}
break;
파싱은 되는거 같긴한대 title부분말고 다른부분을 받고 싶은데요 어떻게 하면될까요?
도저히 모르겠서요 .
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="en">
<head>
<title>시내버스 -사이트에 오신것을 환영합니다.</title>
<td style="text-align: center; padding-top: 5px; padding-bottom: 5px;" class="even endtd"><div style="background-image:url(/images/bbs/nosun_bg.gif); background-repeat: no-repeat; padding-left: 8px; width: 45px; height: 19px; padding-top: 3px;"><a href="javascript:change_noserndo('101');">101</a></td>
<td style="text-align: center; padding-top: 5px; padding-bottom: 5px;" class="even endtd"><a href='http://hwanyeo.ipohang.org' target='_blank' style="font-weight: bolder;">양덕</a></td>
<td style=" padding-top: 5px; padding-bottom: 5px;" class="even endtd">대학-북부시장-포은도서관-죽도시장-고속버스터미널-해도육교-형산교-남구보건소-청림-동해(약전)
</td>
나머지 101 이랑 양덕 밑에 있는 버스이동경로가 이상하게 안받아짐 ㅠㅠ
while(parserEvent != XmlPullParser.END_DOCUMENT)
{
switch(parserEvent)
{
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.START_TAG:
tag = parser.getName();
break;
case XmlPullParser.TEXT:
if(tag.equals("title")){
region = parser.getText();
items.add(region);
}
if(tag.equals("td")){
region = parser.getText();
items.add(region);
}
break;
파싱은 되는거 같긴한대 title부분말고 다른부분을 받고 싶은데요 어떻게 하면될까요?
도저히 모르겠서요 .
td 태그같은 경우는 그안에 div 태그와 a 태그가 안에 섞여 있기때문에..
지금 상태에서 td를 읽으면 div 태그와 a 태그가 섞인 결과가 나올겁니다..
그래서 이럴땐 불필요한 부분을 공백 문자열로 대체해준뒤에 결과를 읽는거죠..
td 태그에 대한 값을 읽은 변수에서 <div 시작부터 > 발견할때까지의 문자열을 "" 로 replace하고
<a 시작부터 > 발견할때까지의 문자열을 ""로 replace하고
</div>와 </a>를 ""로 replace해주면..
남는것은 101만 남겠죠..
요런식으로 데이터를가져와야 할겁니다..
html 태그를 파싱하는 작업을 하다보면 이런 과정이 많기땜에..
이런 기능만 하는 함수를 별도로 제작하시는 것도 좋습니다..