簡體   English   中英

使用DOM進行XML解析

[英]XML parsing with DOM

我正在從SDcard解析xml文件,並在textview中顯示它。 每當我嘗試訪問時,都不會顯示任何內容

InputStream in = new FileInputStream("/sdcard/jokes.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(in);
doc.getDocumentElement().normalize();
NodeList nodeLst = doc.getElementsByTagName("jokes");

for (int s = 0; s < nodeLst.getLength(); s++) {
    Node fstNode = nodeLst.item(s);
    System.out.println("" + fstNode);
    if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
        Element fstElmnt = (Element) fstNode;
        NodeList fstNmElmntLst = (NodeList) fstElmnt.getChild("item");
        Element fstNmElmnt = (Element) fstNmElmntLst.item(0);
        NodeList fstNm = ((Node) fstNmElmnt).getChildNodes();
        System.out.println("Number of joke description : "+ ((Node) fstNm.item(0)).getNodeValue());

    }
}

這是我從sdcard解析xml文件的代碼。 誰能告訴我在哪里出錯了,或者您是否有更好的選擇,請告訴我。

嘗試此循環:

for (int s = 0; s < nodeList.getLength(); s++)
{
    Node firstNode = nodeList.item(s);
    NodeList nodes = firstNode.getChildNodes();
    for (int i = 0; i < nodes.getLength(); i++)
    {
        Node node = nodes.item(i);
        //print node info
    }
}

我認為您只是導入了錯誤的類,因為org.w3c.dom.Element中沒有所謂的“ getChild”方法。
請導入“ org.w3c.dom.Element;” 代替“ import android.sax.Element;”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM