2015-06-13 43 views
0

我想我的項目的一個子類的屬性:獲取attibuteDict一個子類XML解析 - 斯威夫特

<pdv id="1000002" latitude="4621842" longitude="522767" cp="01000" pop="R"> 
<adresse>16 Avenue de Marboz</adresse> 
<ville>BOURG-EN-BRESSE</ville> 
<ouverture debut="01:00" fin="01:00" saufjour=""/> 
<services> 
    <service>Automate CB</service> 
    <service>Vente de gaz domestique</service> 
</services> 
<prix nom="Gazole" id="1" maj="2015-05-30 11:30:17" valeur="1206"/> 
<prix nom="SP95" id="2" maj="2015-05-30 11:30:17" valeur="1398"/> 
<prix nom="SP98" id="6" maj="2015-05-30 11:30:17" valeur="1434"/> 
<rupture id="3" nom="E85" debut="2009-11-03 12:19:00" fin=""/> 
<fermeture/></pdv> 

我知道怎麼去<pdv id="000">attributeDict,但我試圖讓<prix nom="example">

我嘗試使用該代碼:

func beginParsing() 
{ 
    parser = NSXMLParser(contentsOfURL: testUrl)! 
    parser.delegate = self 
    parser.parse() 
} 

func parser(parser: NSXMLParser!, didStartElement elementName: String!, namespaceURI: String!, qualifiedName qName: String!, attributes attributeDict: [NSObject : AnyObject]!) 
{ 
    element = elementName 
    if (elementName as NSString).isEqualToString("pdv") 
    { 

     cp = attributeDict["cp"]! as NSMutableString 
     latitude = attributeDict["latitude"]! as NSMutableString 
     longitude = attributeDict["longitude"]! as NSMutableString 

     elements = NSMutableDictionary.alloc() 
     elements = [:] 
     PrixCarbu = NSMutableString.alloc() 
     PrixCarbu = "" 

    } 

} 

func parser(parser: NSXMLParser!, foundCharacters string: NSString!) 
{ 

    if element.isEqualToString("prix") { 
     PrixCarbu.appendString(string) 

     func parser(parser: NSXMLParser!, didStartElement elementName: String!, namespaceURI: String!, qualifiedName: String!, attributes: [NSObject : AnyObject]!) { 

      prixString = elementName 
      if (elementName as NSString).isEqual("prix") { 

       println(attributes) 

      } 

     } 

    } 

} 


func parser(parser: NSXMLParser!, didEndElement elementName: String!, namespaceURI: String!, qualifiedName qName: String!) 
{ 
    if (elementName as NSString).isEqualToString("pdv") { 
     if !cp.isEqual(nil) { 
      elements.setObject(cp, forKey: "cp") 
     } 
     if !latitude.isEqual(nil) { 
      elements.setObject(latitude, forKey: "latitude") 
     } 
     if !longitude.isEqual(nil) { 
      elements.setObject(longitude, forKey: "longitude") 
     }` 

謝謝!

回答

0

你應該把你的「prix」檢查放入開始元素方法中。它相當於「pdv」,只是使用相同的機制。

+0

是的,但「prix」是是不是一個問題? – Antonio

+0

這是工作!謝謝 ! – Antonio