如何解析nsXml Parser

时间:2010-03-12 07:24:15

标签: objective-c cocoa nsxml xml-attribute

我是iphone开发的新手,我被要求使用nsxml解析器从谷歌api解析xml。我已经解析了另一个有xml的网址,但我无法解析谷歌,因为它使用id来存储数据而不是内部标记。即。

<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>

有人可以帮我解释如何解析标签内的属性。

2 个答案:

答案 0 :(得分:2)

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];
    }
}

答案 1 :(得分:1)

  

有人可以帮助我,我如何解析标签内的属性[使用NSXMLParser]。

在您的解析器委托中,实施the parser:didStartElement:namespaceURI:qualifiedName:attributes: method。这些属性将位于解析器在最后一个参数中为您提供的字典中。