Я использую JDOM с SAXBuilder для анализа файлов XML, и у меня проблема с файлом, который выдает эту ошибку:
java.net.MalformedURLException: unknown protocol: c
at java.net.URL.<init>(URL.java:574)
at java.net.URL.<init>(URL.java:464)
at java.net.URL.<init>(URL.java:413)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:518)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:986)
at com.foo.moo.MyClass.getValues(MyClass.java:321)
А строка такая:
Document document = null;
document = sxb.build(files.elementAt(i)); // This one
Проведя небольшое исследование в Интернете, я думаю, что ошибка связана с Java 1.6.
Как вы думаете ?
3 ответа
Сначала я предполагаю, что вы загружаете локальный файл, например: "c: /mylocalfile.xml"
Но этот URL не содержит протокола, например http://
, ftp://
или file://
Попробуйте файл: // c: /mylocalfile.xml
На самом деле у меня было место в имени моей папки, которое вызвало эту ошибку. Даже в случае локальных файлов JAVA может понимать типы протоколов.
В имени моего файла был пробел
Я решил это, используя InputStream вместо имени файла:
Работает:
fis = new FileInputStream(filename);
Document doc = new SAXBuilder().build(fis);
Вылетает:
Document doc = new SAXBuilder().build(filename);
Похожие вопросы
Связанные вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].