3

SAXBuilder で JDOM を使用して 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 に関連していると思います。

どう思いますか ?

4

3 に答える 3

10

私の最初の推測は、「c:/mylocalfile.xml」のようなローカル ファイルを読み込んでいるということです。

ただし、この URL にはhttp://ftp://またはfile://

file://c:/mylocalfile.xml を試してください

于 2011-08-30T13:08:29.857 に答える
4

実際、このエラーの原因となったフォルダー名にスペースがありました。ローカル ファイルの場合でも、JAVA にはプロトコル タイプを理解する機能があります。

于 2012-07-25T05:20:13.647 に答える
0

ファイル名にスペースがありました

ファイル名の代わりにInputStreamを使用して解決しました:

作品:

fis = new FileInputStream(filename);
Document doc = new SAXBuilder().build(fis);

クラッシュ:

Document doc = new SAXBuilder().build(filename);
于 2015-07-28T14:22:46.487 に答える