xml解析器fileNotFound错误

时间:2015-10-29 17:56:40

标签: java ajax xml xml-parsing

所以我只有一个包含xml文件的目录,我正在尝试迭代它。我遇到的问题是,每当我尝试解析文件时,我都会收到fileNotFound异常。

代码:

public static void main(String[] args) {
    File dir = new File(".\\xmlFileGoHere");
    File[] directoryListing = dir.listFiles();

    for(File fileName : directoryListing) {
        String path = fileName.getAbsolutePath();
        Document xmlDoc = getDocument(path);
    }
}

private static Document getDocument(String docString) {
    try {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setIgnoringComments(true);
        factory.setValidating(true);

        DocumentBuilder builder = factory.newDocumentBuilder();
        return builder.parse(new InputSource(docString));
    } 
    catch(Exception e) {
        e.printStackTrace();
    }
    return null;
}

}

首先,我发送的路径不正确,并检查我是否将代码更改为:

    public static void main(String[] args) {
    File dir = new File(".\\xmlFileGoHere");
    File[] directoryListing = dir.listFiles();

    for(File fileName : directoryListing) {
        String path = fileName.getAbsolutePath();
        File file = new File(path);
        System.out.println(file.exists());
    }
} 

上面的代码总是返回true。

我在Windows上,所以我没有考虑权限。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您需要传入URI,而不是InputSource构造函数的文件路径,因此请将getDocument(path)更改为getDocument(fileName.toURI().toString())

作为替代方案,因为您已经File并且parse重载了File,您可以将签名更改为private static Document getDocument(File input),将代码更改为{ {1}}。