2011-01-31 6 views
0

Nokogiriを使用してMedia RSSフィードを解析する際に、XMLを切り捨てる同僚のマシンに問題があります。フィードは標準的なMedia RSSフィードであり、XMLは不正な形式ではありません。 XMLの特定のポイントで停止し、そのドキュメントの現在のポイントで開いていたタグを閉じるように見えます。 (残念なことに、私はXMLをすぐに入手できるわけではありませんが、この質問を実際のXMLで更新する予定です)。Nokogiri切り捨てXML入力

私のマシン(OSX 10.6、Nokogiri 1.4.4)で正しく動作しているのは混乱していますが、同じセットアップを使用してマシンで正しく動作していますが、マシンは数年前です。私はどこかに違いがあると思いますが、残念ながら私は何を探すべきか分かりません。

ご意見やご指摘をいただければ幸いです。

XMLサンプル

これは鋸山は、XMLフィードを切り捨て項目です。

注:フィードの一部の値を識別しないように置き換えました。

<item> 
<title>Naruto Season 7 - Episode 167 - When Egrets Flap Their Wings</title> 
<link>http://www.test.com/redirect?url=%2Fnaruto-original%2Fepisode-167-when-egrets-flap-their-wings-526666&aff=0000000</link> 
<guid isPermalink="true">http://www.test.com/media-526666</guid> 
<description><img src="http://img1.lln.test.com/i/spire3-tmb/9730631d41af0f46cb556642ca1f32231240438469_thumb.jpg" /><br />At Moso's mansion, a battle takes place between the Wandering Ninja and a Leaf Ninja. With Chishima's help, Naruto is freed from Moso's genjutsu. Moso then reveals his true form as the leader of the Wandering ninja, Hoki!</description> 
<enclosure url="http://img1.lln.test.com/i/spire3-tmb/9730631d41af0f46cb556642ca1f32231240438469_thumb.jpg" type="image/jpeg" length="6592"/> 
<category>Anime</category> 
<media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat" label="Anime">Movies_Anime_animation</media:category> 
<pubDate>Wed, 22 Apr 2009 21:39:34 GMT</pubDate> 
<test:freePubDate>Tue, 19 Jan 2038 00:27:28 GMT</test:freePubDate> 
<test:premiumPubDate>Wed, 22 Apr 2009 21:39:34 GMT</test:premiumPubDate> 
<test:episodeNumber>167</test:episodeNumber> 
<test:duration>1414</test:duration> 
<test:publisher>TV TOKYO</test:publisher> 
<media:content url="https://www.test.com/syndication/video?id=1444659&affiliate_code=0000000" type="video/mp4" medium="video" duration="1414"/> 
<media:restriction relationship="allow" type="country">us ca as um pr gu vi</media:restriction> 
<media:credit role="distribution company">Test Inc.</media:credit> 
<media:rating scheme="urn:simple">nonadult</media:rating> 
<media:thumbnail url="http://img1.lln.test.com/i/spire3-tmb/9730631d41af0f46cb556642ca1f32231240438469_full.jpg"/> 
<media:keywords>action, adventure, comedy, supernatural, martial, arts, ninja, shounen, super, power, drama, fantasy</media:keywords> 
</item> 
+0

フィードのURLまたは完全なフィードをここに入力します。それがなければ、誰もが単純に推測するだろう。 – Phrogz

+0

サンプルを入手した時点で、確実に投稿します。 – bdorry

+0

遅れて申し訳ありません - 上記のXMLを投稿してください。 – bdorry

答えて

1

Nokogiriはマシンの違いに基づいています:Nokogiriはほとんどの作業とスピードでlibxml2に依存しています。私は失敗しているマシンに、Nokogiriがビルドされた古い、バグの多いlibxml2のバージョンを持っていると推測しています。 Nokogiriを削除し、libxml2をアップグレードして、Nokogiriを再インストールしてください(新しいlibxml2に対してビルドするようにしてください)。 (私のように、あなたの代わりにはfinkやMacPortsのを使用してのソースからビルドすることを好む、場合)

Use libxml from sourceWhat to do if libxml2 is being a jerkかのいずれかを参照してください。

+0

私はこれを渡して、それが助けてくれたら、感謝します! – bdorry

+0

Nokogiriは古い/バグの多いバージョンのlibxml2を捕捉するのにはかなり効果があり、問題を感知したときに起動するたびに大声で苦情を言いました。不平を上書きすることは可能でしたが、開発者は明示的にそれを行わなければなりませんでした。私はそれがENVで設定されたフラグかコード内の定数であるかどうかを覚えていませんが、両方をチェックするのは簡単な作業でなければなりません。設定しなければならない変数の名前のためにかなり明白でした。今、Nokogiriはバギーバージョンのインストールを拒否します。 –

+0

@theTinMan良い情報;私の推測は、おそらく間違っているようです。私たちはサンプルを待って、レプロを試してみる必要があります。 – Phrogz

関連する問題