2017-08-22 38 views
1

我保持一箇舊的項目,並遷移到新的服務器環境後,DocumentHelper需要XML decalration版本是小寫

import org.dom4j.Document; 
import org.dom4j.DocumentException; 
import org.dom4j.DocumentHelper; 
import org.dom4j.Element; 

但是,當我試圖解析XML字符串:

Document dom = DocumentHelper.parseText(xml); 

它打印錯誤有:

location error:Error on line 1 of document : The version is required in the XML declaration. Nested exception: The version is required in the XML declaration.

的XML的內容是:

<?xml Version="1.0" encoding="UTF-8"?> 
<Page> 
<Common> 
<Device Version="1.0.0" Type="H9" Customer="general " /> 
<Function Id="GetConfig" WatchId="355372020368356" Style="2"/> 
</Common> 
</Page> 

而當我將<?xml Version更改爲小寫<?xml version時,它成功通過。

但是XML的來源是我不能改變的東西,有沒有什麼辦法來配置XML解析器接受大寫的XML聲明之一?

回答

0

它是報告問題的基礎XML解析器。最簡單的解決方法可能是「編輯」輸入文件:

Document doc = DocumentHelper.parseText(xml.replaceAll("^<\\?xml +Version", "<?xml version")); 
+0

謝謝,我確實按照你在告訴你之前所說的那樣做過。但是我想知道這些代碼如何在以前的環境中工作。 –