如何通过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的名称和值分别由方法name和stringValue给出。对于属性节点,这些是属性名称和值。
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];
}
}
答
有人可以帮我,我怎么能分析该标签内的属性[使用的NSXMLParser。
在您的解析器委托中,实现the parser:didStartElement:namespaceURI:qualifiedName:attributes:
method。这些属性将出现在解析器在最后一个参数中给出的字典中。
当然,您需要使用NSXMLDocument来获取NSXMLNodes(包括NSXMLElements)。提问者正在使用的NSXMLParser不会给你任何这样的对象。 – 2010-03-13 18:56:54