Nokogiri截断XML输入

时间:2011-01-31 15:24:44

标签: ruby xml nokogiri libxml2

我在使用Nokogiri解析媒体RSS提要时同事机器截断XML时遇到问题。 Feed是标准的Media RSS Feed,XML格式不正确。看起来它只是停留在XML中的某个点,并关闭在文档中当前点打开的任何标记。 (不幸的是我现在没有XML avialable,但是当我可以使用它时,我会用实际的XML更新这个问题。)

我的困惑来自于它在我的机器上工作正常(OSX 10.6,Nokogiri 1.4.4),而它正确地在他的机器上使用相同的设置 - 但是他的机器已经有几年了。我想在某个地方存在差异但不幸的是我不知道该寻找什么。

任何想法或方向都将不胜感激。

XML示例

这是Nokogiri截断XML Feed的项目。

注意:我确实将Feed中的某些值替换为非标识值。

<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>

1 个答案:

答案 0 :(得分:1)

我的猜测基于机器差异:Nokogiri的大多数工作和速度都依赖于libxml2。我猜测失败的机器有一个较旧的,错误的版本的libxml2,Nokogiri是针对它构建的。尝试删除Nokogiri,升级libxml2,然后重新安装Nokogiri(以便它针对较新的libxml2构建)。

请参阅 What to do if libxml2 is being a jerk 或(如果像我一样,您更喜欢从源代码构建而不是使用fink或macports) Use libxml from source