193: def parse(item)
194:
195: if (e = item.elements['title']) && e.text
196: @title = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
197: end
198:
199: item.each_element('link') do |e|
200: if e.attribute('type').value == 'text/html' or
201: e.attribute('type').value == 'application/xhtml' or
202: e.attribute('type').value == 'application/xhtml+xml'
203: if (h = e.attribute('href')) && h.value
204: @link = h.value
205: end
206: end
207: end
208:
209: if e = item.elements['content'] || item.elements['summary']
210: if (e.attribute('mode') and e.attribute('mode').value == 'escaped') &&
211: e.text
212: @content = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
213: else
214: @content = FeedParser::getcontent(e, @feed)
215: end
216: end
217:
218: if (e = item.elements['issued'] || e = item.elements['created']) && e.text
219: begin
220: @date = Time::xmlschema(e.text)
221: rescue
222: begin
223: @date = Time::rfc2822(e.text)
224: rescue
225: begin
226: @date = Time::parse(e.text)
227: rescue
228: @date = nil
229: end
230: end
231: end
232: end
233:
234: @creator = @feed.creator
235: if (e = item.elements['author/name']) && e.text
236: @creator = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
237: end
238: end