Как разобрать атрибуты xml в target-c?

Мой xml выглядит так:

<Schedule id="1296" date="2010-05-20">
−
<Sports>
<Sport id="1" name="Football" abbr="FB"/>
<Sport id="2" name="Basketball" abbr="BK"/>
<Sport id="3" name="Baseball" abbr="BB"/>
<Sport id="4" name="Hockey" abbr="HK"/>
<Sport id="5" name="Other" abbr="OT"/>
</Sports>
−
<Leagues>
<League id="1" league_id="1" sport_id="1" periods="4" half_time_minutes="12" name="NFL" abbr="NFL" covers_league="NFL" covers_sport="football"/>
<League id="2" league_id="2" sport_id="1" periods="4" half_time_minutes="18" name="College Football" abbr="CFB" covers_league="NCAAF" covers_sport="football"/>
<League id="3" league_id="3" sport_id="2" periods="4" half_time_minutes="15" name="NBA" abbr="NBA" covers_league="NBA" covers_sport="basketball"/>
<League id="4" league_id="4" sport_id="2" periods="2" half_time_minutes="15" name="College Basketball" abbr="CBK" covers_league="NCAAB" covers_sport="basketball"/>
<League id="5" league_id="5" sport_id="3" periods="9" half_time_minutes="0" name="MLB" abbr="MLB" covers_league="MLB" covers_sport="baseball" ml="true"/>
<League id="6" league_id="6" sport_id="3" periods="9" half_time_minutes="0" name="College Baseball" abbr="CBB" ml="true"/>
<League id="7" league_id="7" sport_id="4" periods="3" half_time_minutes="0" name="NHL" abbr="NHL" covers_league="NHL" covers_sport="hockey" ml="true"/>
<League id="8" league_id="8" sport_id="2" periods="4" half_time_minutes="15" name="WNBA" abbr="WNBA" covers_league="WNBA" covers_sport="basketball"/>
</Leagues>

как я могу разобрать значения в этом xml?


person Mashhadi    schedule 22.07.2011    source источник


Ответы (3)


Используйте NSXMLParser.. Попробуйте следовать этому руководству:

программирование руководство по NSXMLParser

person kviksilver    schedule 22.07.2011

чтобы добраться до атрибута, вам сначала нужно сообщить компилятору, из какого элемента вы хотите получить атрибут(ы). Поэтому я бы использовал оператор if. Допустим, мы хотим получить значение атрибута «имя». Он находится внутри элемента «Спорт». Так бы и написали.

if([elementname isEqualToString:@"Sport"]){
   nameString = [attributeDict objectForKey:@"name"];
}

он будет искать элемент Sport, а затем сохранит значение атрибута этого элемента с именем name в NSString, у нас есть nameString имен.

person RyanTCB    schedule 28.04.2012