繁体   English   中英

如何解析 objective-c 中的 xml 属性?

[英]How to parse xml attributes in objective-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 中的值?

要获得属性,您首先必须告诉编译器您要从哪个元素中获取属性。 所以我会使用 if 语句。 假设我们想要获取“名称”属性值。 它位于 Sport 元素内部。 所以我们会写。

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

它将查找元素 Sport,然后将名为 name 的元素属性的值存储到我们有名称 nameString 的 NSString 中。

你必须使用NSXMLParser

使用NSXMLParser .. 尝试遵循本教程:

NSXMLParser 编程指南

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM