从本地文件解析android中的xml

时间:2011-03-28 13:18:43

标签: android xml

我之前几次成功解析了xml数据,但这是我第一次在android中做同样的事情。我像往常一样尝试使用DOM,但每次都会在.parse方法上发生错误。我在网上搜索并多次尝试,但没有任何成功。我需要做的就是从本地文件中获取xml数据,将其作为参数放在某些函数中。我在Main Activity的onCreate方法中实现了代码。这是我通常所做的,但这次没有任何成功:

try {

                File xmlFile = new File("C:\\Users\\gg90\\Desktop\\testingxml.xml");


                DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
                DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
                Document doc = dBuilder.parse(xmlFile);
                doc.getDocumentElement().normalize();

希望你能帮助我。谢谢!

4 个答案:

答案 0 :(得分:3)

没有驱动器C的概念:在android中,所以我猜你的文件是无效的,解析器就会呛到它。 Android使用unix文件系统,因此路径看起来像/data/file.xml等等。

要解析assets文件夹中的xml文件,请查看this code,它会打开文件夹,获取文件并打开输入流。然后拨打this method

答案 1 :(得分:2)

1. /在res中,创建新文件夹:raw == / res / raw        复制文件testingxml.xml并粘贴到文件夹raw

2. /使用SOM(如果需要,ou SAX)从上面的位置解析XML

InputStream catDoc = context.getResources().openRawResource(R.raw.testingxml);

//Using factory get an instance of document builder
    DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
//parse using builder to get DOM representation of the XML file
    dom = builder.parse(catDoc, null);

答案 2 :(得分:1)

尝试在 res 文件夹中创建名为 raw 的文件夹,并将xml文件放在工作区中的项目中。刷新项目,直到在 R.java 中更新项目。然后使用此代码:

InputStream file = this.getResources().openRawResource(R.raw.license_status);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);
doc.getDocumentElement().normalize();

答案 3 :(得分:0)

所以转到你的项目文件夹找到RES文件夹,然后创建一个名为“RAW”的新文件夹 并将您的XML文件放在那里并刷新项目,直到它在自动生成的R.java作为类更新。 现在您可以使用R.RAW.XYZ.xml ...:)