java - Android:无法读取xml

标签 java android xml xml-parsing

在尝试从 xml 读取时,我收到 IOException

下面是代码

File xmlFile = new File("\\assets\\data\\data.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(xmlFile);

dBuilder.parse(xmlFile) 抛出 IOException

我也尝试过 new File("/assets/data/data.xml")new File("assets/data/data.xml") 但没有用。可能的错误是什么以及如何解决?

最佳答案

您不能在运行时使用File访问assets/。您应该在运行时使用 AssetManager 访问 assets/,您可以通过 getResources().getAssets() 获取它。

有关更多信息,请参阅 Android parse XML file from Assets or internal/external storage

从 Assets 中获取 xml 为

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(getXml(context,"data/data.xml")));
Document doc =  builder.parse(is);

函数是

private String getXml(Context mContext,String path){

    String xmlString = null;
    AssetManager am = mContext.getAssets();
    try {
        InputStream is = am.open(path);
        int length = is.available();
        byte[] data = new byte[length];
        is.read(data);
        xmlString = new String(data);
    } catch (IOException e1) {
        e1.printStackTrace();
    }

    return xmlString;
}

关于java - Android:无法读取xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25520370/

相关文章:

java - Android GridLayout 边框

java - 为什么每次执行uploadArchives都会生成很多pom文件?

java - 没有找到适合 ArrayAdapter 的构造函数

android - 单击通知打开错误的 Activity

android - ScrollView 无法显示最后一个元素

java - 动态添加芯片到芯片组

c++ - QDomNode.clear() 不会删除 xml 标记的值

java - 没有 awt/swing 类的 Canvas 到 base64 图像

java - 用户在 Spring 3 MVC 中的请求周期中看到 unicode 文本的表示不一致

java - 使用预先存在的 AES key 在 Java 中解密文件