2012-05-10 48 views
0

我正在使用jsp服務器,mysql數據庫和xsl轉換。我從存儲到我的電腦的XML文件的鏈接,從而將其與xslt.If翻譯我這樣做,一切都很好:從mysql數據庫解析XML文件時出錯

String url="c:\\xampp\\tomcat\\webapps\\examples\\sakias.xml"; 
Document doc = builder.parse(new File(url)); and so on as usual... 

的問題是,如果我存儲在URL鏈接(c:\\xampp\\tomcat\\webapps\\examples\\sakias.xml)一列到MySQL數據庫,然後獲取它,我得到以下錯誤:

org.xml.sax.SAXParseException; systemId: file:///c:/xampp/; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog 

是否有編碼問題;轉義字符;這真的很奇怪。

PS1:是否有另一種解決方案,直接將xml存儲到sql數據庫中;我的版本不支持xml field.Can我把它存儲爲字符串轉義;我改變了url鏈接到這個表單(http:// localhost:8080/examples/jsp/jsp2/loginrecord/link_error.xml),但仍然是相同的錯誤。我打印它,它很好,但仍然是相同的錯誤

回答

0

您的數據庫中的URL不應該有\轉義。它應該看起來像c:\xampp\tomcat\webapps\examples\sakias.xml

另外,是的,您可以將XML存儲在SQL數據庫中。您不必擔心將其轉義存儲(如果您使用Java構建字符串,則可能需要將其轉義),但您應該擔心列大小。您可以選擇將其存儲爲TEXT而不是VARCHAR(不存在String String類型)。

+0

謝謝你的答覆。我已經嘗試了你的兩個建議,但沒有奏效。在第二個建議我得到「文件錯誤提前結束」。 – sakias

+0

@sakias如果數據不適合字段,MySQL可以截斷數據,這可能會導致錯誤。檢查你的列大小是否足夠大。 – ykaganovich