RaptureXML解析某个RSS提要的问题
问题描述:
我试图解析一个受欢迎的德国新闻网站(taz.de)的某个RSS提要。不幸的是,他们的描述标签不仅包含纯文本,但任何东西的混合物,包括图片,链接等RaptureXML解析某个RSS提要的问题
<description>
<![CDATA[<a href="http://www.taz.de/10-Jahre-nach-dem-Irakkrieg/!113046/"><img align="left" style="margin-right:5px;" src="/uploads/images/152x76/18032013_Bush_Irakkrieg_rtr.jpg" border="0" width="152" height="76" /></a>Das Land ist von einem funktionierenden Rechtsstaat weit entfernt. Zehn Jahre nach dem Irakkrieg zeigt sich eine niederschmetternde Bilanz. <a href="http://www.taz.de/10-Jahre-nach-dem-Irakkrieg/!113046/">mehr...</a>]]>
</description>
我唯一感兴趣的事情是文本Das Land ist von einem funktionierenden Rechtsstaat weit entfernt. Zehn Jahre nach dem Irakkrieg zeigt sich eine niederschmetternde Bilanz.
我会怎么做,在一个有效的方式(没有可怕的字符串操作)?由于没有属性名称,我想我被搞砸了?我使用的是RaptureXML,但如果这个问题有更好的库,我会切换xml解析器。
答
恐怕比这更糟糕:“CDATA”部分是指描述(模周围的空白)是文字字符串
<a href="http://www.taz.de/10-Jahre-nach-dem-Irakkrieg/!113046/"><img align="left" style="margin-right:5px;" src="/uploads/images/152x76/18032013_Bush_Irakkrieg_rtr.jpg" border="0" width="152" height="76" /></a>Das Land ist von einem funktionierenden Rechtsstaat weit entfernt. Zehn Jahre nach dem Irakkrieg zeigt sich eine niederschmetternde Bilanz. <a href="http://www.taz.de/10-Jahre-nach-dem-Irakkrieg/!113046/">mehr...</a>
即您的代码段相当于
<description>
<a href="http://www.taz.de/10-Jahre-nach-dem-Irakkrieg/!113046/"><img align="left" style="margin-right:5px;" src="/uploads/images/152x76/18032013_Bush_Irakkrieg_rtr.jpg" border="0" width="152" height="76" /></a>Das Land ist von einem funktionierenden Rechtsstaat weit entfernt. Zehn Jahre nach dem Irakkrieg zeigt sich eine niederschmetternde Bilanz. <a href="http://www.taz.de/10-Jahre-nach-dem-Irakkrieg/!113046/">mehr...</a>
</description>
符合XML解析器不能给你你正在寻找的文本。您有两种选择:
- 将字符串包裹在例如
<foo>...</foo>
,通过即通过XML解析器,并拉出根元素的所有文本子元素。 - 将字符串换成
<html><title></title><body>...</body></html>
之类的字符串,通过一个HTML解析器(或任何标签 - 汤 - 果酱解析器)传递它,并提取出body元素的所有文本子元素。
不知taz.de打破,如果描述包含]]>
...