주소는 http://www.~~~~.com~~~~&cityCode=22&nodeNm=보병50사단앞
그리고 xml은
<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);
}
}