我对RSS的"转义HTML"的理解是这样的:
HTML:
1 < 3
Run Code Online (Sandbox Code Playgroud)
变成(RSS):
1 &lt; 3
Run Code Online (Sandbox Code Playgroud)
那么,那么,应该这样:
<img src="http://somehost/someimage?a=foo&b=bar" />
Run Code Online (Sandbox Code Playgroud)
成为:
<img src="http://somehost/someimage?a=foo&amp;b=bar" />
Run Code Online (Sandbox Code Playgroud)
(注意&amp;如果是,那么这是无效的RSS吗?
<description>
...
<img src="http://d.yimg.com/a/p/ap/20110309/capt.f6...02-0.jpg?x=91&y=130&q=85&sig=6oI7fIgN0izc9olfgY56vw--" />
</description>
Run Code Online (Sandbox Code Playgroud)
(此外,关闭> 是不是转义不好?)
我所遇到的上述<description>的问题是,一旦解码了第一层实体(XML)以获得<description>标签的内容,就会得到一个长CDATA,它应该是HTML.问题是<img>只有一个&,这是一个无效的实体.对于上面的大块,我得到类似的东西<img src="....?x=1&y=2" />,这是无效的HTML.
我只是看着被推到RSS中的糟糕的HTML,还是我在这里遗漏了什么?
你需要使用CDATA部分
<description><![CDATA[ <img src="http://somehost/someimage?a=foo&b=bar" /> ]]>
</description>
Run Code Online (Sandbox Code Playgroud)