1

次の URL http://sagt.vizushop.com/DefaultSimple.aspx?command=defaultから XML 応答を読み取ろうとしています。

Android プロジェクトで次のコードを使用して、最初の項目を取得し、次にその 2 番目のノードの値を取得します。

String uri="http://sagt.vizushop.com/DefaultSimple.aspx?command=default";
String [] data=new String [9];
try{
    URL url = new URL(uri);
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setRequestMethod("GET");
    con.setDoOutput(true);

    con.connect();
    data = new String[9];
    if (con.getResponseCode() == HttpURLConnection.HTTP_OK) {                        
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(con.getInputStream());
        NodeList itemnodes=doc.getElementsByTagName("item");
        Node firstitemnode=itemnodes.item(0);
        NodeList childnodesoffirstitemnode=firstitemnode.getChildNodes();
        Node firstnodeOffirstitem=childnodesoffirstitemnode.item(1);
        String contenturl=firstnodeOffirstitem.getNodeValue().toString();
        data[0] = contenturl;
    }

しかし、java.lang.NullPointerException が発生します。

これについて助けてください

少し早いですがお礼を

4

1 に答える 1

1

Dom Parser を使用した XML 解析には、以下のコードを使用してください。

public class XMLParsingDOMExample extends Activity {

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

        /** Create a new layout to display the view */
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(1);

        /** Create a new textview array to display the results */
        TextView id[];
        TextView imageurl[];

        try {

            URL url = new URL("http://sagt.vizushop.com/DefaultSimple.aspx?command=default");
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(new InputSource(url.openStream()));
            doc.getDocumentElement().normalize();

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

            /** Assign textview array lenght by arraylist size */
            id = new TextView[nodeList.getLength()];
            imageurl = new TextView[nodeList.getLength()];

            for (int i = 0; i < nodeList.getLength(); i++) {

                Node node = nodeList.item(i);

                id[i] = new TextView(this);
                imageurl[i] = new TextView(this);

                Element fstElmnt = (Element) node;
                NodeList idList = fstElmnt.getElementsByTagName("item_id");
                Element idElement = (Element) idList.item(0);
                idList = idElement.getChildNodes();
                id[i].setText("id is = " + ((Node) idList.item(0)).getNodeValue());

                NodeList imageurlList = fstElmnt.getElementsByTagName("item_image");
                Element imageurlElement = (Element) imageurlList.item(0);
                imageurlList = imageurlElement.getChildNodes();
                imageurl[i].setText("imageurl is = " + ((Node) imageurlList.item(0)).getNodeValue());

                layout.addView(id[i]);
                layout.addView(imageurl[i]);
            }
        } catch (Exception e) {
            System.out.println("XML Pasing Excpetion = " + e);
        }

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

詳細については、以下のリンクを参照してください。

Dom 解析の例

于 2012-09-07T07:29:53.173 に答える