使用android中的DOM解析器解析存储在内部存储中的XML文件。

时间:2012-01-10 10:15:21

标签: android xml dom xml-parsing domparser

我已经在设备的内部存储中创建了一个xml文件,如android开发者网站上所述。我现在想要使用DOM解析器解析文件。我需要做什么才能让DOM解析器读取我的XML文件? 这是一个片段:

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    Document dom = db.parse(new InputSource(new StringReader(data)));
    dom.getDocumentElement().normalize(); 

我需要在“数据”的位置放置什么:

    Document dom = db.parse(new InputSource(new StringReader(data)));

我知道这很愚蠢,但任何帮助都会受到赞赏。

4 个答案:

答案 0 :(得分:1)

您可以在inputsource

中提供FileInputStream

Document dom = db.parse(new InputSource(new FileInputStream(data)));

答案 1 :(得分:1)

您可以像下面那样创建xml字符串的输入流,然后获取可以解析的节点以获取值。

InputStream is = new ByteArrayInputStream(theXMLString.getBytes("UTF-8"));

        // Build XML document
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(is);

请记住,您将xml文件作为字符串传递。

答案 2 :(得分:1)

要阅读XML文件,请尝试以下

FileInputStream in = new FileInputStream("/sdcard/text.txt");
StringBuffer data = new StringBuffer();
InputStreamReader isr = new InputStreamReader(in);

BufferedReader inRd = new BufferedReader(isr);

String text;
while ((text = inRd.readLine()) != null) {
    inLine.append(text);
    inLine.append("\n");
}
in.close();

String finalData =data.toString();  // Here is your data.

希望以上对你有用。

答案 3 :(得分:0)

尝试使用DOM Parser从Asset文件夹解析此代码:

    DocumentBuilderFactory DBF;
    DocumentBuilder DB;
    Document dom;
    Element elt;

    DBF = DocumentBuilderFactory.newInstance();
    DB = DBF.newDocumentBuilder();
    dom = DB.parse(new InputSource(getAssets().open("city.xml")));
    elt = dom.getDocumentElement(); 
    NodeList items = elt.getElementsByTagName("item");

其中item是Node元素,根据要求添加try ctch块。