我试图解析一个受欢迎的德国新闻网站(taz.de)的某个RSS Feed。不幸的是,他们的描述标签不仅包含纯文本,而且包含任何内容,包括图片,链接等。
<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解析器。
答案 0 :(得分:0)
我担心它比这更糟糕:“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解析器(或任何tag-soup-du-jour解析器),然后拉出body元素的所有文本子项。我想知道如果描述包含]]>
...