Added initial ATOM and RSS feed parser and generator.
(work in progress)
This commit is contained in:
62
library/text/parser/feed/src/feed_parser.e
Normal file
62
library/text/parser/feed/src/feed_parser.e
Normal file
@@ -0,0 +1,62 @@
|
||||
note
|
||||
description: "[
|
||||
Interface common to any FEED parser.
|
||||
|
||||
Usage:
|
||||
create parser
|
||||
if attached parser.feed_from_string (l_feed_content) as l_feed then
|
||||
...
|
||||
|
||||
]"
|
||||
date: "$Date$"
|
||||
revision: "$Revision$"
|
||||
|
||||
deferred class
|
||||
FEED_PARSER
|
||||
|
||||
inherit
|
||||
FEED_PARSER_UTILITIES
|
||||
|
||||
feature -- Access
|
||||
|
||||
name: STRING
|
||||
-- Associated name.
|
||||
deferred
|
||||
ensure
|
||||
not_blanc: not Result.is_whitespace
|
||||
end
|
||||
|
||||
is_detected (xdoc: XML_DOCUMENT): BOOLEAN
|
||||
-- Is `xdoc' an feed representation or Current supported format?
|
||||
deferred
|
||||
end
|
||||
|
||||
feed (xdoc: XML_DOCUMENT): detachable FEED
|
||||
-- Feed from `xdoc' XML document.
|
||||
require
|
||||
is_detected: is_detected (xdoc)
|
||||
deferred
|
||||
end
|
||||
|
||||
feature -- Basic operations
|
||||
|
||||
feed_from_string (a_content: READABLE_STRING_8): like feed
|
||||
-- Feed from `a_content' document.
|
||||
local
|
||||
p: XML_STANDARD_PARSER
|
||||
cb_tree: XML_CALLBACKS_FILTER_DOCUMENT
|
||||
xdoc: XML_DOCUMENT
|
||||
do
|
||||
create p.make
|
||||
create cb_tree.make_null
|
||||
p.set_callbacks (cb_tree)
|
||||
p.parse_from_string_8 (a_content)
|
||||
if p.is_correct then
|
||||
xdoc := cb_tree.document
|
||||
if is_detected (xdoc) then
|
||||
Result := feed (xdoc)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user