This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

RSS Reader
#5
Here's an example that will get text from <title> and <description> tags inside of each <item> tag and save them in a table.

Code:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
itemtag = false result = {} -- callback for tag start function starttag(parser, tag)  -- create new storage in result table for each <item> tag  if tag == 'item' then    itemtag = true    table.insert(result, {})  end  currtag = tag end -- callback for tag end function endtag(p, tag)  if tag == 'item' then    itemtag = false  end  currtag = nil end -- callback for character data function cdata(parser, text)  -- check if parser is inside of <item> and either in <title> or <description>  if itemtag and currtag then    if currtag == 'title' then      result[ #result ].title = text    elseif currtag == 'description' then      result[ #result ].description = text    end  end end -- create parser lxp = require('lxp') parser = lxp.new({  StartElement = starttag,  EndElement = endtag,  CharacterData = cdata, }) -- sample data data = [[ <?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0"> <channel> <title>RSS Title</title> <description>This is an example of an RSS feed</description> <link>http://www.example.com/main.html</link> <lastBuildDate>Mon, 06 Sep 2010 00:01:00 +0000 </lastBuildDate> <pubDate>Sun, 06 Sep 2009 16:20:00 +0000</pubDate> <ttl>1800</ttl> <item>  <title>Example entry</title>  <description>Here is some text containing an interesting description.</description>  <link>http://www.example.com/blog/post/1</link>  <guid isPermaLink="true">7bd204c6-1655-4c27-aeee-53f933c5395f</guid>  <pubDate>Sun, 06 Sep 2009 16:20:00 +0000</pubDate> </item> <item>  <title>Another example entry</title>  <description>Here is some other text containing an interesting description.</description>  <link>http://www.example.com/blog/post/1</link>  <guid isPermaLink="true">7bd204c6-1655-4c27-aeee-53f933c5395f</guid>  <pubDate>Sun, 06 Sep 2009 16:20:00 +0000</pubDate> </item> </channel> </rss> ]] if parser:parse(data) then  log(result) else  log('parse failed') end
Reply


Messages In This Thread
RSS Reader - by Pawel - 28.08.2015, 13:04
RE: RSS Reader - by admin - 31.08.2015, 05:56
RE: RSS Reader - by Pawel - 31.08.2015, 06:32
RE: RSS Reader - by Pawel - 01.09.2015, 11:40
RE: RSS Reader - by admin - 01.09.2015, 12:27
RE: RSS Reader - by Pawel - 01.09.2015, 20:02

Forum Jump: