2016-12-15 147 views
-1

我已經嘗試了所有不同類型的組合,但我只是不明白它想從我:爲什麼我不斷收到「java.net.MalformedURLException:無協議」

java.net.MalformedURLException: no protocol: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ds><ds>... 
    at java.net.URL.<init>(URL.java:593) 
    at java.net.URL.<init>(URL.java:490) 
    at java.net.URL.<init>(URL.java:439) 
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:620) 
    at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:148) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:805) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) 
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243) 
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339) 
    at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:177) 

我已經看了其他問題,但我不知道我的XML有什麼問題。

這是一個完整的XML(有一些純文本刪除):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<ds> 
    <ds> 
     <cue>ABGB : §§ 786 , 810 , 812 </cue>Die Kosten ... <cue>Anmerkung : </cue> 
     ... <cue>Bestätigung von </cue>7 
     <Relation bewertung="1">Ob 56/10a </Relation>= Zak 
     <Relation bewertung="1">2010/773 , 440 </Relation>. 
    </ds> 
</ds> 

的生產代碼:

DocumentBuilderFactory icFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder icBuilder; 

Document parse = null; 

try { 
    icBuilder = icFactory.newDocumentBuilder();    
    parse = icBuilder.parse(xmlString); 
} catch (ParserConfigurationException e) { 
    e.printStackTrace(); 
} catch (SAXException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
+1

你能分享代碼嗎? – Mureinik

+3

,因爲您的xml **不是** [URL](https://docs.oracle.com/javase/8/docs/api/java/net/URL.html) – 2016-12-15 15:42:08

+1

您無法創建URL對象從一個XML字符串 - 需要是一個實際的URL –

回答

3

你傳遞一個StringicBuilder.parse(xmlString),所以你實際上是在調用DocumentBuilder.parse(String uri)

該方法需要一個URI,並將嘗試解析它,同時將它傳遞給一些XML數據。

+2

你爲什麼要嘗試*調用它'parseUri()',我說得對嗎? – displayname

4

parse(String)方法將uri指向XML文檔,而不是其內容。

爲了解析內容,您必須構建您自己的InputSource。例如:

parse = icBuilder.parse(new InputSource(new StringReader(xmlString))); 
相關問題