长版:
那些熟悉RSS家族标准化噩梦的人可能知道 如果例如“description”元素,RSS不会为您提供信息 仅包含纯文本或html或xhtml。
我目前使用ROME-API将各种RSS版本转换为Atom 1.0。 Rome-API很乐意 解析RSS,然后输出Atom提要。幸运的是,Atom有一种方法来声明一个包含text,html或xhtml的摘要。
实施例。 RSS:
<item>
<link>http://www.schwarzwaelder-bote.de/wm?catId=79039&artId=14737088&rss=true</link>
<title>Analyse: Winter reißt Löcher in Straßen und Kassen</title>
<description><img src="http://www.schwarzwaelder-bote.de/cms_images/swol/dpa-InfoLine_rs-images/20100306/1192a_24128948.thumbnail.jpg" alt="Schlagloch" title="" border="0">&nbsp;& ;nbsp;&nbsp;Berlin (dpa) - Von Schnee und Eis befreit sind Deutschlands Straßen, und jetzt geht es ans große Aufräumen....</description>
</item>
变为: ATOM:
<entry>
<title>Analyse: Winter reißt Löcher in Straßen und Kassen</title>
<link rel="alternate" href="http://www.schwarzwaelder-bote.de/wm?catId=79039&artId=14737088&rss=true" />
<author>
<name />
</author>
<id>http://www.schwarzwaelder-bote.de/wm?catId=79039&artId=14737088&rss=true</id>
<summary type="text"><img src="http://www.schwarzwaelder-bote.de/cms_images/swol/dpa-InfoLine_rs-images/20100306/1192a_24128948.thumbnail.jpg" alt="Schlagloch" title="" border="0">&nbs p;&nbsp;&nbsp;Berlin (dpa) - Von Schnee und Eis befreit sind Deutschlands Straßen, und jetzt geht es ans große Aufräumen....</summary>
</entry>
问题是type="text"
告诉像Firefox这样的Feed阅读器将摘要的内容呈现为文本 - &gt;你可以看到所有的html-source。
短版:如何检测说明元素的内容是(X)HTML,以便我可以设置正确的类型属性?
答案 0 :(得分:0)
检测HTML的一种非常原始的方法可能是从源中剥离任何标记(在PHP中,您将使用strip_tags()
执行此操作)并查看结果是否与原始文件不同。参考RSS的混乱,你可能不得不在html_entity_decode()
之后运行两次,一次运行一次,因此可以可靠地检测实体编码和非编码标签。
通常情况下,这会产生中途可靠的结果,但之后我看到了ö
:
<title>Analyse: Dem Mutigen geh<F6>rt die Urne</title>
这是什么样的编码方法?我以前从未见过这个。那当然会被(错误地)解释为HTML标签。这是原子特有的吗?