0

人気のあるドイツのニュース サイト ( taz.de )の特定の 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 パーサーに切り替えます。

4

1 に答える 1

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 パーサーは、探しているテキストを提供できません。次の 2 つのオプションがあります。

  • 文字列を eg でラップし、それを XML パーサーに<foo>...</foo>渡し、ルート要素のすべてのテキストの子を取り出します。
  • 文字列を のようなものでラップし<html><title></title><body>...</body></html>、HTML パーサー (または任意の tag-soup-du-jour パーサー) に渡し、body 要素のすべてのテキストの子を取り出します。

記述に以下が含まれているとtaz.deが壊れるのかな]]>...

于 2013-03-28T04:03:17.547 に答える