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