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