解析java中的XML文件,其路径是动态获取的

时间:2008-12-29 07:30:45

标签: xml directory parsing load java-io

我在C:/proj/test_xml/Test.java中有一个类Test。特定 parser.parse( “的test.xml”); 我需要一种解析test.xml的方法,无论它是在当前目录,proj还是在C:/ 此外,解决方案不应该使用java.io

由于

2 个答案:

答案 0 :(得分:0)

我不确定我是否理解了您的问题,但我认为您希望在不同位置搜索文件,有限数量的任意目录。 最后一个要求听起来特别糟糕......为什么不使用java.io? 事实上,最简单的解决方案是:

String[] filenames = { "c://a.pdf", "c://airu//a.pdf" };
File f = null;
boolean found = false;
for (String filename : filenames)
{
    f = new File(filename);
    found = f.exists(); 
    if (found) break;
}
if (!found) 
{
    throw new RuntimeException("file nowhere to be found");
}
System.out.println("file " + f.getName() + " found");

请尝试在问题中添加一些细节(编辑)。

答案 1 :(得分:0)

尝试循环,直到解析不再抛出IOException:

String filename="test.xml";
int tries=3;
while( tries-->0 ) {
    try {
        parser.parse(filename);
        break;
    } catch( FileNotFoundException e ) {
        // FileNotFound expected
        filename="../"+filename;
    }
}

如果尝试== 0,则根本找不到该文件。对于DOM解析器,需要保留从parser.parse()返回的Document对象。