Как разобрать через nsXml Parser - PullRequest
0 голосов
/ 12 марта 2010

Я очень новичок в разработке для iphone, и меня попросили использовать синтаксический анализатор nsxml для анализа xml из API Google. Я проанализировал другой URL, который имеет xml, но я не могу разобрать Google, потому что он использует идентификаторы для хранения данных, а не внутри тега. т.е.

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

2 голосов
/ 12 марта 2010

Имя и значение NSXMLNode задаются методами name и stringValue соответственно. Для узла атрибута это имя и значение атрибута.

Атрибуты NSXMLElement задаются методом attribute , или к определенному атрибуту можно обращаться по имени с помощью метода 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 голос
/ 13 марта 2010

Может ли кто-нибудь помочь мне, как я могу разобрать атрибут внутри тега [с помощью NSXMLParser].

В вашем делегате синтаксического анализатора реализуйте метод parser:didStartElement:namespaceURI:qualifiedName:attributes: . Атрибуты будут в словаре, который парсер даст вам в последнем аргументе.

...