我正在使用Zillow的基于Web的API来检索有关属性的数据。我可以使用NSURLSession成功地取回数据,但是它是XML格式的,并且我只有处理JSON的经验。

如何以更具可读性的形式组织这些数据,更具体地说,如何获得建造年份(<yearBuilt>2007</yearBuilt>)值?

NSURLSession代码:

func data_request(){

    let url:NSURL = NSURL(string: url_to_request)!
    let session = NSURLSession.sharedSession()
    let request = NSMutableURLRequest(URL: url)
    request.HTTPMethod = "GET"
    request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData

    let task = session.dataTaskWithRequest(request) {
        (
        let data, let response, let error) in

        if (error == nil){
            //dataString is our XML data
            let dataString = NSString(data: data!, encoding: NSUTF8StringEncoding)
            print(dataString)
        }
    }
    task.resume()
}

在控制台中打印的dataString(XML数据):Optional(<?xml version="1.0" encoding="utf-8"?><SearchResults:searchresults xsi:schemaLocation="http://www.zillow.com/static/xsd/SearchResults.xsd http://www.zillowstatic.com/vstatic/9b53252/static/xsd/SearchResults.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SearchResults="http://www.zillow.com/static/xsd/SearchResults.xsd"><request><address>12572 Cherokee Ln</address><citystatezip>Galt, CA</citystatezip></request><message><text>Request successfully processed</text><code>0</code></message><response><results><result><zpid>25951952</zpid><links><homedetails>http://www.zillow.com/homedetails/12572-Cherokee-Ln-Galt-CA-95632/25951952_zpid/</homedetails><graphsanddata>http://www.zillow.com/homedetails/12572-Cherokee-Ln-Galt-CA-95632/25951952_zpid/#charts-and-data</graphsanddata><mapthishome>http://www.zillow.com/homes/25951952_zpid/</mapthishome><comparables>http://www.zillow.com/homes/comps/25951952_zpid/</comparables></links><address><street>12572 Cherokee Ln</street><zipcode>95632</zipcode><city>Galt</city><state>CA</state><latitude>38.299332</latitude><longitude>-121.267781</longitude></address><FIPScounty>6067</FIPScounty><useCode>SingleFamily</useCode><taxAssessmentYear>2015</taxAssessmentYear><taxAssessment>403012.0</taxAssessment><yearBuilt>2007</yearBuilt><lotSizeSqFt>663418</lotSizeSqFt><finishedSqFt>1527</finishedSqFt><bathrooms>2.0</bathrooms><bedrooms>3</bedrooms><totalRooms>6</totalRooms><zestimate><amount currency="USD">390005</amount><last-updated>02/17/2016</last-updated><oneWeekChange deprecated="true"></oneWeekChange><valueChange duration="30" currency="USD">-8580</valueChange><valuationRange><low currency="USD">370505</low><high currency="USD">409505</high></valuationRange><percentile>0</percentile></zestimate><localRealEstate><region name="Galt" id="24831" type="city"><zindexValue>281,700</zindexValue><links><overview>http://www.zillow.com/local-info/CA-Galt/r_24831/</overview><forSaleByOwner>http://www.zillow.com/galt-ca/fsbo/</forSaleByOwner><forSale>http://www.zillow.com/galt-ca/</forSale></links></region></localRealEstate></result></results></response></SearchResults:searchresults><!-- H:004 T:27ms S:1131 R:Thu Feb 18 16:33:36 PST 2016 B:4.0.25234-master.df01d52~hotfix_pre.361b6ff -->)(lldb)
更具可读性的XML(在浏览器中查看):
ios - 在iOS中管理XML数据(快速)-LMLPHP

最佳答案

Check this link

首先,委托“NSXMLParserDelegate”

其次,创建XML解析器并委托给自己的类

第三,使用parser的委托函数(例如didStartElement)作为开始标记,foundCharacters用作标记中的内容。

请记住将您的xml字符串转换为NSData以供解析器读取。

关于ios - 在iOS中管理XML数据(快速),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35495297/

10-14 16:52
查看更多