마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

XML 파싱 질문드립니다..

0 추천

주소는 http://www.~~~~.com~~~~&cityCode=22&nodeNm=보병50사단앞 이구요 들어가면 

<response>
 
<header>
<resultCode>00</resultCode>
<resultMsg>NORMAL SERVICE.</resultMsg>
</header>
<body>
<items>
<item>
<gpslati>35.94752</gpslati>
<gpslong>128.57391</gpslong>
<nodeid>DGB7021032300</nodeid>
<nodenm>보병50사단앞</nodenm>
</item>
</items>
</body>
</response>
이렇게 되어있습니다.
 
제가 텍스트뷰에 출력하고 싶은것은 <nodeid>에 있는 DGB7021032300 인데요 
 
아무리 예제를 따라하고 해봐도 잘안되네요ㅠㅠ..
 
제가 해본 소스는 아래인데요..
더 나은 소스나 잘못된 부분 좀 알려주시면 감사하겠습니다..
public class DetailActivity extends Activity {
 
 
TextView textview;
String xml;
DocumentBuilderFactory dbf;
DocumentBuilder db;
Document doc;
NodeList nodeLst;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail_activity);
 
textview = (TextView) findViewById(R.id.textView2);
 
GetXMLTask task = new GetXMLTask(this);
task.execute("http://www.~~~~.com~~~~&cityCode=22&nodeNm=보병50사단앞";);
}
 
@SuppressLint("NewApi")
private class GetXMLTask extends AsyncTask<String, Void, Document> {
private Activity context;
 
public GetXMLTask(Activity context) {
this.context = context;
}
 
@Override
protected Document doInBackground(String... urls) {
URL url;
try {
url = new URL(urls[0]);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db;
db = dbf.newDocumentBuilder();
doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
} catch (Exception e) {
Toast.makeText(getBaseContext(), "파싱에러", Toast.LENGTH_SHORT).show();
}
return doc;
}
}
 
protected void onPostExecute(Document doc){
String s = "";
NodeList nodeList = doc.getElementsByTagName("item");
 
 
 
for (int i = 0; i<nodeList.getLength(); i++) {
Node node = nodeList.item(i);
Element fstElmnt = (Element) node;
 
NodeList websiteList = fstElmnt.getElementsByTagName("nodeid");
Element websiteElement = (Element) websiteList.item(0);
websiteList = websiteElement.getChildNodes();
 
s+= ((Node) websiteList.item(0)).getNodeValue();
}
textview.setText(s);
}
}

 

and033 (140 포인트) 님이 2015년 6월 27일 질문

1개의 답변

0 추천
https://github.com/BLamy/RaptureXML-Java

http://jericho.htmlparser.net/docs/index.html

같은 라이브러리로 바꾸는 것도 생각해보세요
쎄미 (162,410 포인트) 님이 2015년 6월 29일 답변
...