1

如 android 开发人员网站所述,我在设备的内部存储中创建了一个 xml 文件。我现在想使用 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

4 回答 4

1

您可以在输入源中提供 FileInputStream

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

于 2012-01-10T10:21:52.780 回答
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 文件作为字符串传递。

于 2012-01-10T10:29:45.910 回答
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.

以上希望对你有用。

于 2012-01-10T10:33:11.383 回答
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 块。

于 2012-01-10T11:06:17.457 回答