Nokogiri усечение ввода XML
У меня проблемы с машиной коллеги, усекающей XML при использовании Nokogiri для разбора мультимедийного RSS-канала. Фид является стандартным медиа-RSS-каналом, и XML не является искаженным. Похоже, он просто останавливается в определенной точке XML и закрывает все теги, которые были бы открыты в этой текущей точке документа. (К сожалению, сейчас у меня нет доступного для меня XML-файла, но я обновлю этот вопрос фактическим XML-кодом, когда он мне будет доступен).
Моя путаница возникает из-за того, что он отлично работает на моей машине (OSX 10.6, Nokogiri 1.4.4), в то время как он корректно работает на его машине, используя ту же настройку - однако его машина на несколько лет старше. Я представляю, что где-то есть разница, но, к сожалению, я не знаю, что искать.
Любые мысли или направления будут с благодарностью.
Пример XML
Это пункт, где Nokogiri усекает 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>
1 ответ
Мое предположение основано на различии машин: Nokogiri полагается на libxml2 для большей части своей работы и скорости. Я предполагаю, что у неисправной машины есть более старая, с ошибками версия libxml2, против которой была построена Nokogiri. Попробуйте удалить Nokogiri, обновить libxml2, а затем переустановить Nokogiri (чтобы он собирался с использованием более новой libxml2).
См. Раздел " Что делать, если libxml2 является придурком" или (если, как и я, вы предпочитаете строить из исходного кода вместо использования fink или macports), используйте libxml из исходного кода.