2010-01-26 27 views
1

我有一個XML數據源,其中包含一個文檔節點中包含HTML格式的數據的HTML &。什麼是正確的方式來逃避這些數據,以便我可以正確解析它?爲了澄清,我在Objective-C中使用TouchXML來解析數據。 (不是說它應該重要,但我想包括所有相關信息。)什麼是XML文檔中HTML和CSS的正確轉義格式?

任何幫助將不勝感激。謝謝!

L.

回答

3

我假設你將有包含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> 
+1

請注意,字符串「]]>」可能出現在HTML和CSS中,因此您需要小心不要無意中終止您的CDATA塊。你可以通過將「]]>」替換爲「]]]]>」(即:結束CDATA塊的部分路徑並開始新的操作)。另一種方法是使用& - 轉義而不是CDATA塊。無論您使用CDATA塊還是使用&-capcaping,它們對於XML解析器都是一樣的。 – 2010-01-26 05:26:00

+0

@Laurence,雖然你的觀點是有效的,但字符串「]]>」不太可能出現,因爲CDATA在HTML中並不常見(據我所知),並且很少包括未轉義顯示的序列作爲瀏覽器中的常規輸出。顯然,應該考慮到這一點。 – 2010-01-26 14:20:39

+1

我們只是說我已經看到很多代碼需要採用手動波浪式方法才能逃脫,以便在「不太可能」最終實際發生時才被它咬住。 – 2010-01-26 23:04:11

相關問題