2012-04-15 3 views
2

XML 파서를 사용하여 Android 애플리케이션을 작성 중입니다. 나는 일하는 데 사용되는 파서를 가지고 있지만, 그것을 실행할 때는 아무 것도하지 않습니다. 이 내 클래스 :Android XML 파서가 작동하지 않습니다.

import java.net.URL; 

import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 

import org.w3c.dom.Document; 
import org.w3c.dom.Element; 
import org.w3c.dom.Node; 
import org.w3c.dom.NodeList; 
import org.xml.sax.InputSource; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.LinearLayout; 
import android.widget.TextView; 
import android.widget.Toast; 

public class XMLParsingUsingDomeActivity extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 


LinearLayout layout = new LinearLayout(this); 
layout.setOrientation(1); 


TextView ID[]; 
TextView vraag[]; 
TextView category[]; 
TextView a1[]; 
TextView p1[]; 
TextView a2[]; 
TextView p2[]; 
TextView a3[]; 
TextView p3[]; 

try { 

URL url = new URL(
"http://128.140.217.126/vragen.xml"); 
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
DocumentBuilder dbu= dbf.newDocumentBuilder(); 
Document doc = dbu.parse(new InputSource(url.openStream())); 
doc.getDocumentElement().normalize(); 

NodeList nodeList = doc.getElementsByTagName("item"); 

ID = new TextView[nodeList.getLength()]; 
vraag = new TextView[nodeList.getLength()]; 
category = new TextView[nodeList.getLength()]; 
a1 = new TextView[nodeList.getLength()]; 
p1 = new TextView[nodeList.getLength()]; 
a2 = new TextView[nodeList.getLength()]; 
p2 = new TextView[nodeList.getLength()]; 
a3 = new TextView[nodeList.getLength()]; 
p3 = new TextView[nodeList.getLength()]; 
for (int i = 0; i < nodeList.getLength(); i++) { 

Node node = nodeList.item(i); 

ID[i] = new TextView(this); 
vraag[i] = new TextView(this); 
category[i] = new TextView(this); 
a1[i] = new TextView(this); 
p1[i] = new TextView(this); 
a2[i] = new TextView(this); 
p2[i] = new TextView(this); 
a3[i] = new TextView(this); 
p3[i] = new TextView(this); 


Element fstElmnt = (Element) node; 
NodeList nameList = fstElmnt.getElementsByTagName("ID"); 
Element nameElement = (Element) nameList.item(0); 
nameList = nameElement.getChildNodes(); 
ID[i].setText(((Node) nameList.item(0)).getNodeValue()); 


NodeList vraagList = fstElmnt.getElementsByTagName("vraag"); 
Element vraagElement = (Element) vraagList.item(0); 
vraagList = vraagElement.getChildNodes(); 
vraag[i].setText(((Node) vraagList.item(0)).getNodeValue()); 

NodeList a1List = fstElmnt.getElementsByTagName("a1"); 
Element a1Element = (Element) a1List.item(0); 
a1List = a1Element.getChildNodes(); 
a1[i].setText(((Node) a1List.item(0)).getNodeValue()); 

NodeList p1List = fstElmnt.getElementsByTagName("p1"); 
Element p1Element = (Element) p1List.item(0); 
p1List = p1Element.getChildNodes(); 
p1[i].setText(((Node) p1List.item(0)).getNodeValue()); 

NodeList a2List = fstElmnt.getElementsByTagName("a2"); 
Element a2Element = (Element) a2List.item(0); 
a2List = a2Element.getChildNodes(); 
a2[i].setText(((Node) a2List.item(0)).getNodeValue()); 

NodeList p2List = fstElmnt.getElementsByTagName("p2"); 
Element p2Element = (Element) p2List.item(0); 
p2List = p2Element.getChildNodes(); 
p2[i].setText(((Node) p2List.item(0)).getNodeValue()); 

NodeList a3List = fstElmnt.getElementsByTagName("a3"); 
Element a3Element = (Element) a3List.item(0); 
a3List = a3Element.getChildNodes(); 
a3[i].setText(((Node) a3List.item(0)).getNodeValue()); 

NodeList p3List = fstElmnt.getElementsByTagName("p3"); 
Element p3Element = (Element) p3List.item(0); 
p3List = p3Element.getChildNodes(); 
p3[i].setText(((Node) p3List.item(0)).getNodeValue()); 



layout.addView(category[i]); 
Toast.makeText(this, 
     "ID: " + i + "\n" + 
     "Vraag: " + ((Node) vraagList.item(0)).getNodeValue() + "\n" + 
     "A1: " + ((Node) a1List.item(0)).getNodeValue() + "\n" + 
     "P2: " + ((Node) p1List.item(0)).getNodeValue() + "\n" + 
     "A2: " + ((Node) a2List.item(0)).getNodeValue() + "\n" + 
     "P2: " + ((Node) p2List.item(0)).getNodeValue() + "\n" + 
     "A3: " + ((Node) a3List.item(0)).getNodeValue() + "\n" + 
     "P3: " + ((Node) p3List.item(0)).getNodeValue(), 
     Toast.LENGTH_LONG).show(); 

} 
} catch (Exception e) { 
System.out.println("XML Pasing Excpetion = " + e); 
} 

/** Set the layout view to display */ 
setContentView(layout); 

} 
} 

그리고 내 매니페스트 :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="your.pace.namace" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="10" /> 
    <uses-permission android:name="android.permission.INTERNET"></uses-permission> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".XMLParsingUsingDomeActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

그리고 로그 캣 출력이 쓸모없는 것입니다. 코드를 변경하지 못했지만 더 이상 작동하지 않습니다.

+0

언제 어디서나 사용할 수 있습니까? –

답변

1

예외는 무엇입니까?

몇 가지 일이 발생할 수 있습니다. 웹 서비스에서 URL을 가져 오려고하는 경우 일 수 있습니다. AsyncTask에서 코드를 수행해야 할 수도 있습니다. 의심되는 행을 마우스 오른쪽 단추로 클릭하고 중단 점을 토글 한 다음 패키지 탐색기에서 클래스를 마우스 오른쪽 단추로 클릭하고 "다음으로 디버그"로 이동 한 다음 "디버그 구성"으로 이동하십시오. 올바른 프로젝트를 디버깅하고 있는지 확인한 후 디버그 버튼을 클릭하십시오.

디버그 모드에 오신 것을 환영합니다. 예외를 일으키는 라인을 확인하십시오.

관련 문제