1
我有一個XML數據源,其中包含一個文檔節點中包含HTML格式的數據的HTML &。什麼是正確的方式來逃避這些數據,以便我可以正確解析它?爲了澄清,我在Objective-C中使用TouchXML來解析數據。 (不是說它應該重要,但我想包括所有相關信息。)什麼是XML文檔中HTML和CSS的正確轉義格式?
任何幫助將不勝感激。謝謝!
L.
我有一個XML數據源,其中包含一個文檔節點中包含HTML格式的數據的HTML &。什麼是正確的方式來逃避這些數據,以便我可以正確解析它?爲了澄清,我在Objective-C中使用TouchXML來解析數據。 (不是說它應該重要,但我想包括所有相關信息。)什麼是XML文檔中HTML和CSS的正確轉義格式?
任何幫助將不勝感激。謝謝!
L.
我假設你將有包含HTML標記,XHTML的不混合,並在文檔中交織XML數據節點的XML數據。
在這種情況下,我通常更喜歡使用CDATA blocks作爲HTML數據。這可以讓你放任何你想要的HTML。嘗試將HTML添加爲XML文檔中的常規節點可能會導致問題,因爲它並不總是符合100%的XML規範,以及需要定義字符實體才能被XML正確識別解析器。
<xmlNode>
<![CDATA[
<Any>
<Html>
<Tags>
<You>
<Want />
</You>
</Tags>
</Html>
</Any>
]]>
<xmlNode>
請注意,字符串「]]>」可能出現在HTML和CSS中,因此您需要小心不要無意中終止您的CDATA塊。你可以通過將「]]>」替換爲「]]]]>」(即:結束CDATA塊的部分路徑並開始新的操作)。另一種方法是使用& - 轉義而不是CDATA塊。無論您使用CDATA塊還是使用&-capcaping,它們對於XML解析器都是一樣的。 – 2010-01-26 05:26:00
@Laurence,雖然你的觀點是有效的,但字符串「]]>」不太可能出現,因爲CDATA在HTML中並不常見(據我所知),並且很少包括未轉義顯示的序列作爲瀏覽器中的常規輸出。顯然,應該考慮到這一點。 – 2010-01-26 14:20:39
我們只是說我已經看到很多代碼需要採用手動波浪式方法才能逃脫,以便在「不太可能」最終實際發生時才被它咬住。 – 2010-01-26 23:04:11