Ошибка префикса пространства имен HappyMapper - PullRequest
0 голосов
/ 15 февраля 2011

У меня есть следующий документ XML, и я хотел бы преобразовать xml в объект, используя happymapper.

<objects>
<item>
<title>book1</title>
<link>http://asdf.com</link>
<pubDate>march 1 2009</pubDate>
<description>testtesttest</description>
<media:thumbnail url='http://url.com' />
</item>
<item>
<title>book2</title>
<link>http://dffdfdf.com</link>
<pubDate>march 3 2009</pubDate>
<description>testtesttest</description>
<media:thumbnail url='http://url.com' />
</item>
</objects>

#HappyMapper object
class Item
 include HappyMapper
 namespace 'http://search.yahoo.com/mrss/'
 element :title, String
 element :link, String
 element :pubDate, String
 element :description, String
 element :media_thumbnail, String, :tag=>'media:thumbnail', :attributes=>{:url=>String}
end

items=Item.parse(xml_document)
items.each do |i|
 puts i.title
 puts i.media_thumbnail.url
end

Ошибка: префикс пространства имен медиа на миниатюре не определен в: 11.

Ошибка: префикс пространства имен медиа на миниатюре не определен в: 22.

1 Ответ

1 голос
/ 16 февраля 2011
  1. Убедитесь, что у вашего XML-документа есть определение пространства имен для префикса media. Элемент <media:thumbnail> или один из его предков должен иметь определение пространства имен, которое выглядит как xmlns:media="http://some.uri". Если нет пространства имен-uri для сопоставления префиксов, то ваш XML не (правильно) сформирован (пространство имен), что приводит к сбою синтаксического анализа.

  2. Убедитесь, что вы определили правильное пространство имен для элемента thumbnail в коде HappyMapper.

...