用Java读取XML文件,适用于Android和的IntelliJ

时间:2013-07-05 14:27:52

标签: java android xml

我必须在我的android应用程序中读取一个xml文件才能从中获取数据。我先前问过问题,发现我需要使用解析器。使用谷歌我设法找到了方法,但由于一些未知的原因,我的文件甚至不会读。我在文件路径上做错了吗?我已经尝试了许多不同的文件路径方式,但都导致相同的IO异常。另外测试.exists()会返回false:/,它确实存在,并且如果我输入与我的代码中的URL完全相同的URL,它将出现在浏览器中。

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.File;

public class XMLReader {

    public static void main(String argv[]) {

        try {

            File fXmlFile = new File("/Users/simondobson/GoogleDrive/GUESTLIST/TGN/src/com/TGN/simon/events.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(fXmlFile);
            doc.getDocumentElement().normalize();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

在我的一项活动中,我正在这样打电话。

XMLReader xml;
xml = new XMLReader();

1 个答案:

答案 0 :(得分:0)

您的问题很可能源于您使用的是Windows操作系统,文件分隔符使用反斜杠而不是正斜杠。

  

“对于Microsoft Windows平台,路径名的前缀   包含驱动器说明符,后跟驱动器号   “:”如果路径名是绝对的,则可能后跟“\”。该   UNC路径名的前缀是“\\”;主机名和共享名称   是名称序列中的前两个名称。一个相对路径名   没有指定驱动器没有前缀“

From the File Class API

MKYong还有a good intro tutorial使用Java中的文件类,并展示了如何使程序在基于Windows和Unix的平台上正确查找文件。