0

Androidでxmlをリストに解析する方法を本当に混乱させました。コンポーネントを取得するために使用NodeListしました。実行してデバッグすると、行でエラーが発生しました。詳細については、AndroidのJavaコードをご覧ください。getElementsByTagName<segment>NodeList nL = doc.getElementsByTagNameNS(KEY_SEGMENT, "segment_id");

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listsegment_main);

    ArrayList<HashMap<String, String>> menuItems = new
            ArrayList<HashMap<String, String>>();

    String xml = XMLParser.getXmlFromUrl();
    Document doc = XMLParser.getDomElement(xml);


    NodeList nL = doc.getElementsByTagNameNS(KEY_SEGMENT, "segment_id");
    for (int i = 0; i < nL.getLength(); i++) {
        HashMap<String, String> map =  new HashMap<String, String>();
        Element e = (Element) nL.item(i);
        map.put(KEY_SEGMENT_ID, XMLParser.getValue(e, KEY_SEGMENT_ID));
        map.put(KEY_MAIN_SEGMENT, XMLParser.getValue(e, KEY_MAIN_SEGMENT));
        menuItems.add(map);
    }

私のxmlファイル:

<map>
 <segment segment_id="1050">
   <segment_id>1050</segment_id>
   <route_id>103</route_id>
   <canvasser_id>13</canvasser_id>
   <order>1</order>
   ....
 </segment>

私を助けてください.あなたのアドバイス、参照、リンク、およびすべての引数が緊急に必要であり、私にとって役立ちます.大きな感謝.

4

1 に答える 1

1

DOM パーサーを使用しています。以下のコードを試してください

public class XMLParsingDOMExampleActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    try{
    URL url = new URL("http://www.androidpeople.com/wp-content/uploads/2010/06/example.xml");
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(new InputSource(url.openStream()));
            doc.getDocumentElement().normalize();

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

            Node node = nodeList.item(0);

            Element fstElmnt = (Element) node;
            NodeList nameList = fstElmnt.getElementsByTagName("name");
            Element nameElement = (Element) nameList.item(0);
            nameList = nameElement.getChildNodes();
            Log.i("Name", ((Node) nameList.item(0)).getNodeValue());

            NodeList websiteList = fstElmnt.getElementsByTagName("website");
            Element websiteElement = (Element) websiteList.item(0);
            websiteList = websiteElement.getChildNodes();
            Log.i("Website",((Node) websiteList.item(0)).getNodeValue());

            Log.i("Website Category", websiteElement.getAttribute("category"));

    }
    catch(Exception e) {

        e.printStackTrace();

    }
}

}

SAXParser もこのブログで見つけることができます

于 2012-04-18T02:50:41.167 に答える