2013-02-01 68 views
0

我想插入一個HTML文件的內容到一個XML請求。插入HTML到XML查詢使用CDATA

我打開HTML文件是這樣的:

page = open(html).read() 

那麼這種方式插入內容的XML:

"<Description><![CDATA["+page+"]]</Description>"+\ 

這樣的錯誤了這種方式:

XML解析錯誤。
XML錯誤文本:「;嵌套的異常是: org.xml.sax.SAXParseException:XML文檔結構必須開始,並且 在同一個實體內結束。

我假設我必須做的不僅僅是將html文件的內容轉儲到CDATA標記中嗎?或者以不同的方式做它?

+0

你需要用']]>''不]以結束CDATA' –

回答

2

你忘了關閉>CDATA元素:

"<Description><![CDATA["+page+"]]></Description>"+\ 
3

兩個潛在的問題。

首先,以結束CDATA塊正確的方法是用]]>,不]]

其次,你的HTML數據可能包含CDATA塊,nested CDATA blocks are not allowed。你可能會考慮編碼你的HTML數據,使用的Base64例如:

import base64 
encPage = base64.b64encode(page)