223: def parse(item)
224:
225: if (e = item.elements['title']) && e.text
226: @title = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
227: end
228:
229: item.each_element('link') do |e|
230: if e.attribute('type') and (
231: e.attribute('type').value == 'text/html' or
232: e.attribute('type').value == 'application/xhtml' or
233: e.attribute('type').value == 'application/xhtml+xml')
234: if (h = e.attribute('href')) && h.value
235: @link = h.value
236: end
237: end
238: end
239:
240: if e = item.elements['content'] || item.elements['summary']
241: if (e.attribute('mode') and e.attribute('mode').value == 'escaped') &&
242: e.text
243: @content = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
244: else
245: @content = FeedParser::getcontent(e, @feed)
246: end
247: end
248:
249: if (e = item.elements['issued'] || e = item.elements['created']) && e.text
250: begin
251: @date = Time::xmlschema(e.text)
252: rescue
253: begin
254: @date = Time::rfc2822(e.text)
255: rescue
256: begin
257: @date = Time::parse(e.text)
258: rescue
259: @date = nil
260: end
261: end
262: end
263: end
264:
265: @creator = @feed.creator
266: if (e = item.elements['author/name']) && e.text
267: @creator = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
268: end
269: end