aec*_*tci 0 xml iphone xml-parsing
我有一个XML文件,如下所示:
<Statistics>
<City ID="01">
<Town ID="04">
<Person ID="03" Name="Jack">
</Person>
<Person ID="04" Name="John">
</Person>
<Person ID="05" Name="Peter">
</Person>
<Person ID="06" Name="Daniel">
</Person>
</Town>
<Town>
...
</Town>
</City>
<City>
...
</City>
</Statistics>
Run Code Online (Sandbox Code Playgroud)
我想阅读这个XML文件并创建一个城市数组.在城市阵列内部我希望城镇阵列具有给定的ID和城镇阵列内部我希望有一个人员列表,我将在我的项目中使用他们的名字.系统将如下:返回居住在城市中ID =".."的人和ID ="..."的城镇例如:返回居住在CityID ="01"且TownID ="04"的人名单将是[杰克,约翰,彼得,丹尼尔].
有没有在iPhone SDK中这样做的方法?如果有,你可以建议我这样做的方法或解释如何以最简单的方式做到这一点,因为我对这个环境很新.
非常感谢您收到的答案.
Ahm*_*ali 10
的NSXMLParser是你在找什么:的NSXMLParser类参考
这是一个很好的教程:让NSXMLParser成为你的朋友
NSString* XMLString = @"<?xml version=\"1.0\" encoding=\"UTF-8\"?>...";
NSData* data = [XMLString dataUsingEncoding:NSUTF8StringEncoding];
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data]
[parser setDelegate:self];
[parser setShouldProcessNamespaces:NO];
[parser setShouldReportNamespacePrefixes:NO];
[parser setShouldResolveExternalEntities:NO];
[parser parse];
Run Code Online (Sandbox Code Playgroud)
你将需要这个代表:
parser:didStartElement:namespaceURI:qualifiedName:attributes:
Run Code Online (Sandbox Code Playgroud)
并使用attribute类型的变量NSDictionary来读取标记属性:
[[attributeDict objectForKey:@"id"] integerValue]
[attributeDict objectForKey:@"Name"]
Run Code Online (Sandbox Code Playgroud)
不要忘记将NSXMLParserDelegate协议添加到您的班级:
#import <Foundation/Foundation.h>
@interface MyClass : NSObject <NSXMLParserDelegate> {
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
931 次 |
| 最近记录: |