RaptureXML解析某个rss feed的问题

时间:2013-03-20 14:10:13

标签: ios xml xcode xml-parsing string-parsing

我试图解析一个受欢迎的德国新闻网站(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解析器。

1 个答案:

答案 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>
    &lt;a href="http://www.taz.de/10-Jahre-nach-dem-Irakkrieg/!113046/"&gt;&lt;img align="left" style="margin-right:5px;" src="/uploads/images/152x76/18032013_Bush_Irakkrieg_rtr.jpg" border="0" width="152" height="76" /&gt;&lt;/a&gt;Das Land ist von einem funktionierenden Rechtsstaat weit entfernt. Zehn Jahre nach dem Irakkrieg zeigt sich eine niederschmetternde Bilanz. &lt;a href="http://www.taz.de/10-Jahre-nach-dem-Irakkrieg/!113046/"&gt;mehr...&lt;/a&gt;
</description>

符合标准的XML解析器无法为您提供所需的文本。您有两种选择:

  • 将绳子包裹在例如<foo>...</foo>,通过XML解析器传递 ,然后拉出根元素的所有文本子项。
  • 将字符串换成<html><title></title><body>...</body></html>之类的字符串,将其传递给HTML解析器(或任何tag-soup-du-jour解析器),然后拉出body元素的所有文本子项。

我想知道如果描述包含]]> ...

,taz.de是否会中断