137: def parse(item)
138:
139: if ((e = item.elements['title'] || item.elements['rss:title']) &&
140: e.text) ||
141: ((e = item.elements['pubDate'] || item.elements['rss:pubDate']) &&
142: e.text)
143: @title = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
144: end
145:
146: if ((e = item.elements['link'] || item.elements['rss:link']) && e.text)||
147: (e = item.elements['guid'] || item.elements['rss:guid'] and
148: not (e.attribute('isPermaLink') and
149: e.attribute('isPermaLink').value == 'false'))
150: @link = e.text.rmWhiteSpace!
151: end
152:
153: if (e = item.elements['content:encoded']) ||
154: (e = item.elements['description'] || item.elements['rss:description'])
155: @content = FeedParser::getcontent(e, @feed)
156: end
157:
158: if e = item.elements['dc:date'] || item.elements['pubDate'] ||
159: item.elements['rss:pubDate']
160: begin
161: @date = Time::xmlschema(e.text)
162: rescue
163: begin
164: @date = Time::rfc2822(e.text)
165: rescue
166: begin
167: @date = Time::parse(e.text)
168: rescue
169: @date = nil
170: end
171: end
172: end
173: end
174:
175: @creator = @feed.creator
176: if (e = item.elements['dc:creator'] || item.elements['author'] ||
177: item.elements['rss:author']) && e.text
178: @creator = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
179: end
180:
181: if (e = item.elements['dc:subject']) && e.text
182: @subject = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
183: end
184:
185: if (e = item.elements['dc:category'] || item.elements['category'] ||
186: item.elements['rss:category']) && e.text
187: @category = e.text.toUTF8(@feed.encoding).rmWhiteSpace!
188: end
189: end