Java - 在Android工作室中使用DocumentBuilder / XML解析器

时间:2017-05-16 16:21:11

标签: java android xml parsing dom

我试图使用dom XML解析器但是它崩溃了IOException

Document doc = builder.parse(file); 

代码:

try {

   DocumentBuilderFactory factory =  DocumentBuilderFactory.newInstance();
   DocumentBuilder builder = factory.newDocumentBuilder();
   File file = new File(getResources().getResourceName(R.raw.fooddata));
   Document doc = builder.parse(file);

}catch (ParserConfigurationException e) {
   e.printStackTrace();
} catch (IOException e) {
   e.printStackTrace();
} catch (SAXException e) {
   e.printStackTrace();
}

我认为文件路径有问题。 fooddata.xml文件位于/res/xml/fooddata.xml& /res/raw/fooddata.xml,我尝试过以不同的方式访问它,但没有任何作用。

我从try / catch

获得IOException

如何让builder.parse(文件)生效?

1 个答案:

答案 0 :(得分:0)

  

fooddata.xml文件位于/res/xml/fooddata.xml& /res/raw/fooddata.xml

这些是开发计算机上的文件 。它们是Android设备上的不是文件。资源只是设备上APK文件中的条目。

替换:

File file = new File(getResources().getResourceName(R.raw.fooddata));
Document doc = builder.parse(file);

使用:

Document doc=builder.parse(getResources().openRawResource(R.raw.fooddata));