如何通过nsXml解析器进行解析

如何通过nsXml解析器进行解析

问题描述:

我对iphone开发非常陌生,我被要求使用nsxml解析器从google api解析xml。我已经解析了另一个具有XML的网址,但我无法解析谷歌,因为它使用ID来存储数据而不是标签。即如何通过nsXml解析器进行解析

<forecast_information> 
    <city data="Anaheim, CA"/> 
    <postal_code data="anaheim,ca"/> 
    <latitude_e6 data=""/> 
    <longitude_e6 data=""/> 
    <forecast_date data="2010-03-11"/> 
    <current_date_time data="2010-03-12 07:06:32 +0000"/> 
    <unit_system data="US"/> 
</forecast_information> 

有人能帮助我,我该如何解析标签内的属性。

NSXMLNode的名称和值分别由方法namestringValue给出。对于属性节点,这些是属性名称和值。

NSXMLElement的属性由方法attributes给出,或者可以通过名称使用方法attributeForName:访问特定属性。

NSXMLElement *forecast_information; 

for(NSXMLElement *el in [forecast_information children]) { 
    NSString *name = [el name]; 
    NSString *value = @""; 
    if ([el attributeForName: @"data"]) { 
     value = [[el attributeForName: @"data"] stringValue]; 
    } 
} 
+0

当然,您需要使用NSXMLDocument来获取NSXMLNodes(包括NSXMLElements)。提问者正在使用的NSXMLParser不会给你任何这样的对象。 – 2010-03-13 18:56:54

有人可以帮我,我怎么能分析该标签内的属性[使用的NSXMLParser。

在您的解析器委托中,实现the parser:didStartElement:namespaceURI:qualifiedName:attributes: method。这些属性将出现在解析器在最后一个参数中给出的字典中。