Quantcast
Channel: how to parse the entire rss feed xml data in swift - Stack Overflow
Viewing all articles
Browse latest Browse all 2

how to parse the entire rss feed xml data in swift

$
0
0

I am new in swift programming .. I want to parse the xml data in swift..

this is my xml data..

  <rss version="2.0">
     <channel>
     <title>Zee News :India National</title>
     <link>
     <![CDATA[ http://zeenews.india.com ]]>
     </link>
    <description>
    <![CDATA[
        Visit Zee News for latest India news, get latest news from India and        all over the world. We provide you latest celebrity news, latest bollywood news and entertainment news with fastest top stories online about cricket, sports, business, bollywood, entertainment, lifestyle, world and science to get yourself updated.
    ]]>
    </description>
    <language>en-us</language>
    <copyright>Zee News Ltd</copyright>
    <category>India National News</category>
   <pubDate>
   <![CDATA[ 2/04/2016 11:16:57 AM GMT ]]>
   </pubDate>
   <image>
   <url>
   <![CDATA[
http://znn.india.com/images/logo-zeenews-aab-nw.jpg
]]>
   </url>
   <title>
   <![CDATA[ Zee News ]]>
   </title>
   <link>
   <![CDATA[ http://zeenews.india.com ]]>
   </link>
   </image>
   <item>
   <title>
Son of retired Major General arrested in Goa for suspected `terror links`
   </title>
   <link>
   <![CDATA[
http://zeenews.india.com/news/india/son-of-retired-major-general-arrested-in-goa-for-suspected-terror-links_1852160.html
]]>
   </link>
   <description>
Samir Sardana was picked up from Vasco railway station after he was found "wandering suspiciously".
   </description>
<comments>mailto:inewsonline@gmail.com</comments>
<pubdate>Thursday, February 04, 2016, 10:13 GMT +5:30</pubdate>
   <author/>
<guid isPermaLink="false">
   <![CDATA[
http://zeenews.india.com/news/india/son-of-retired-major-general-arrested-in-goa-for-suspected-terror-links_1852160.html
]]>
   </guid>
   </item>

I tried to parse but only "item" data can parse not the "title" & "image"

here is my code...

     var parser = NSXMLParser()
    var posts = NSMutableArray()

    var elements = NSMutableDictionary()

    var element = NSString()
    var title1 = NSMutableString()
    var title3 = NSMutableString()
    var date = NSMutableString()
    var link = NSMutableString()
func beginParsing()
    {

        posts = []
        parser = NSXMLParser(contentsOfURL:(NSURL(string:"http://zeenews.india.com/rss/india-national-news.xml"))!)!
        parser.delegate = self
        parser.parse()

        tbData!.reloadData()
    }
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?,attributes attributeDict:[NSObject :AnyObject])
    {
if (elementName as NSString).isEqualToString("title")
        {
        elements = NSMutableDictionary.alloc()
            title3 = NSMutableString()
            title3 = ""
         }

      if (elementName as NSString).isEqualToString("item")
        {
            elements = NSMutableDictionary.alloc()
            elements = [:]
            title1 = NSMutableString()
            title1 = ""
            date = NSMutableString()
            date = ""
            link = NSMutableString()
            link = ""
        }
    }

    func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?)
    {
if (elementName as NSString).isEqualToString("title")
        {
            if !title3.isEqual(nil) {
               elements.setObject(title3, forKey: "title")
                //posts.addObject(elements)

       }

       }

      if (elementName as NSString).isEqualToString("item") {
            if !title1.isEqual(nil) {
                elements.setObject(title1, forKey: "title")
            }
            if !date.isEqual(nil) {
                elements.setObject(date, forKey: "date")
            }
            if !link.isEqual(nil){
               elements.setObject(link, forKey: "link")
            }
            posts.addObject(elements)
        }
        //posts.addObject(elements)
        //posts.addObject(post)
    }

    func parser(parser: NSXMLParser, foundCharacters string: String?)
    {
        if element.isEqualToString("title")
       {
       title3.appendString(string!)
       }


       if element.isEqualToString("title") {
            title1.appendString(string!)
        }
         if element.isEqualToString("link"){
                link.appendString(string!)
        }

         if element.isEqualToString("pubDate") {
            date.appendString(string!)
        }
    }

Plz... suggest any solution how i can parse the entire rss feed data...


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images