2012-07-20 62 views
12

我正在使用Java,我試圖從一些http鏈接獲取XML文檔。我使用的代碼是:致命錯誤:1:1:內容不允許在序言

URL url = new URL(link); 

HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
connection.setRequestMethod("GET"); 
connection.connect(); 
Document doc = null; 

CountInputStream in = new CountInputStream(url.openStream()); 
doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in); 

CountInputStream不注意,它的一些特殊階層的演技像普通的輸入流。

使用上面的代碼,我有時會得到錯誤Fatal Error :1:1: Content is not allowed in prolog。我認爲這與xml格式不好有關,但我不知道如何解決它。

+1

可能重複給「內容不能在序言不允許的。」錯誤](http://stackoverflow.com/questions/2599919/java-parsing-xml-document-give-content-not-allowed-in-prolog-error) – 2012-07-20 10:22:38

+0

以及我所瞭解的線程你指的是關於從磁盤讀取xml。在我的情況下,我沒有在磁盤上的XML,我只是有一些字符串(鏈接),我得到錯誤之前,我有XML文件... – guest86 2012-07-20 10:24:37

+0

你可以提供有問題的網址?造成這種情況的最可能原因是格式不正確,因此仔細觀察一下會非常有價值。 – MvG 2012-07-20 10:42:33

回答

18

我把我的評論轉到一個答案,所以它可以被接受,這個問題不再是沒有答案。

這最可能的原因是格式錯誤的響應,其中包括最初的<?xml …>之前的字符。所以請查看通過HTTP傳輸的文檔,並在服務器端修復此問題。

+0

這些怪異的字符在文件開始時是BOM(字節順序標記),理想情況下BOM不應該與utf-8編碼一起存在,因爲java無法解析這種例外,並給出了上述錯誤 – techExplorer 2014-04-25 12:07:04

6

在XML前導碼(<?xml ...?>)之前肯定存在一些奇怪的字符(例如BOM)或一些空白字符?

+1

在我的情況下,我錯誤地在xml中使用java樣式註釋添加了註釋。例如而不是使用我曾經使用/ * * /刪除那些固定的我 – Chaitanya 2016-01-13 10:29:07

相關問題