2011-03-09 87 views
2

我的RSS的理解 「HTML逃脫」 是這樣的:RSS逃脫HTML

HTML:

1 < 3 

變(RSS):

1 < 3 

這樣的話,應該此:

<img src="http://somehost/someimage?a=foo&amp;b=bar" /> 

成爲:

&lt;img src="http://somehost/someimage?a=foo&amp;amp;b=bar" /&gt; 

(注意&amp;amp;如果是的話,這是無效的RSS?

<description> 
    ... 
    &#60;img src="http://d.yimg.com/a/p/ap/20110309/capt.f6...02-0.jpg?x=91&amp;y=130&amp;q=85&amp;sig=6oI7fIgN0izc9olfgY56vw--" /> 
</description> 

(此外,是一個事實,即關閉>逃脫壞?)

上述<描述的是我有>的問題是,一旦你解碼第一實體層(XML)到達<描述>標記的內容時,您會得到一個長的CDATA,它應該是HTML。問題是<img>只有一個&,這是一個無效的實體。對於上面的大塊,我得到類似<img src="....?x=1&y=2" />,這是不合法的HTML。

我只是看着闖入RSS的糟糕的HTML,或者我在這裏錯過了什麼?

+0

''是無效的,但瀏覽器可以處理它,所以它是非常有可能的原始的HTML沒有正確逃生的SRC屬性中的&符號。非轉義的'>'當然不是一件好事,但是再次,也許飼料讀者不會窒息它。這兩件事情都做得不好,但可以在寬容的客戶中工作。 – 2011-03-09 20:32:24

+0

這大部分是我的想法......我試圖讓頁面在http://validator.w3.org/ – Thanatos 2011-03-09 20:44:49

回答

6

你需要使用CDATA

<description><![CDATA[ <img src="http://somehost/someimage?a=foo&amp;b=bar" /> ]]> 
</description> 
+0

驗證,我偶然發現這是一個好主意,所以我將它標記爲接受的答案。 (這個問題有點陳舊。)可悲的是,我無法控制生成RSS的內容。這裏的要點:上面的RSS(在問題中,不是這個答案)是不正確的,並且使用CDATA節(雖然不是嚴格要求)可能會提高數據的可讀性。 – Thanatos 2011-07-07 21:25:23