Для анализа XML-файла в Java, путь которого должен быть получен динамически - PullRequest
0 голосов
/ 29 декабря 2008

У меня есть класс Test в C: /proj/test_xml/Test.java. Дано parser.parse ( "test.xml"); Мне нужен способ для анализа test.xml, находится ли он в текущем каталоге, Proj или в C: / Кроме того, решение не должно использовать java.io

Спасибо

Ответы [ 2 ]

0 голосов
/ 29 декабря 2008

Попробуйте цикл, пока синтаксический анализ больше не вызовет 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 необходимо сохранить объект Document, возвращенный из parser.parse ().

0 голосов
/ 29 декабря 2008

Я не уверен, что понял ваш вопрос, но я предполагаю, что вы хотели бы найти файл в разных местах, конечное число произвольных каталогов. Последнее требование звучит особенно ужасно ... почему бы не использовать 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");

Попробуйте и добавьте некоторые детали к вашему вопросу (отредактируйте), пожалуйста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...