博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC-Xml文件解析
阅读量:5119 次
发布时间:2019-06-13

本文共 13211 字,大约阅读时间需要 44 分钟。

本次解析使用的由Google提供的一个开源插件:GDataXmlNode对xml文件的解析。

导入GDataXmlNode文件和配置Xcode :http://blog.csdn.net/hmt20130412/article/details/24042499

 

题目:解析如下Xml文件,通过输入城市中文名,获取对应城市的首字母。 例如:输入常德  输出c

xml文件:

1 
2 3
4
5
a
6
7
安吉
8
安庆
9
鞍山
10
澳门
11
12
b
13
14
保定
15
宝鸡
16
包头
17
北海
18
北京
19
蚌埠
20
滨州
21
22
c
23
24
沧州
25
长春
26
常德
27
长乐
28
长沙
29
常熟
30
常州
31
潮阳
32
潮州
33
承德
34
成都
35
郴州
36
重庆
37
滁州
38
慈禧
39
从化
40
41
d
42
43
大连
44
丹东
45
大庆
46
大同
47
德阳
48
德州
49
东莞
50
东营
51
52
e
53
54
鄂尔多斯
55
鄂州
56
57
f
58
59
奉化
60
佛山
61
抚顺
62
阜阳
63
福州
64
65
g
66
67
赣州
68
广州
69
桂林
70
贵阳
71
72
h
73
74
哈尔滨
75
海口
76
海拉尔
77
邯郸
78
杭州
79
合肥
80
鹤岗
81
衡阳
82
鹤山
83
河源
84
花都
85
淮安
86
淮北
87
淮南
88
黄石
89
呼和浩特
90
惠东
91
惠阳
92
惠州
93
葫芦岛
94
湖州
95
怀化
96
97
j
98
99
江都
100
江门
101
姜堰
102
江阴
103
焦作
104
嘉兴
105
揭阳
106
吉林
107
济南
108
荆门
109
荆沙
110
金华
111
济宁
112
晋江
113
晋中
114
锦州
115
九江
116
117
k
118
119
开封
120
开平
121
昆明
122
昆山
123
124
l
125
126
莱芜
127
莱西
128
廊坊
129
兰州
130
连云港
131
聊城
132
列东
133
醴陵
134
临汾
135
临沂
136
丽水
137
浏阳
138
柳州
139
龙岩
140
六安
141
陆丰
142
漯河
143
洛阳
144
泸州
145
146
m
147
148
茂名
149
梅州
150
绵阳
151
152
n
153
154
南昌
155
南充
156
南京
157
南宁
158
南平
159
南通
160
南阳
161
内江
162
宁波
163
164
p
165
166
盘锦
167
番禺
168
平顶山
169
莆田
170
濮阳
171
172
q
173
174
启东
175
青岛
176
清远
177
秦皇岛
178
钦州
179
琼海
180
齐齐哈尔
181
全国
182
泉州
183
衢州
184
185
r
186
187
日照
188
189
s
190
191
三河
192
三亚
193
上海
194
上虞
195
汕头
196
汕尾
197
韶关
198
绍兴
199
邵阳
200
沈阳
201
深圳
202
石家庄
203
石狮
204
十堰
205
寿光
206
四会
207
随州
208
苏州
209
210
t
211
212
泰安
213
台山
214
太原
215
泰州
216
台州
217
塘沽
218
唐山
219
天津
220
铜陵
221
222
w
223
224
潍坊
225
威海
226
渭南
227
温州
228
武汉
229
芜湖
230
吴江
231
乌鲁木齐
232
无锡
233
梧州
234
235
x
236
237
厦门
238
西安
239
襄樊
240
香港
241
湘潭
242
咸宁
243
咸阳
244
兴宁
245
邢台
246
西宁
247
新乡
248
宣城
249
许昌
250
徐州
251
252
y
253
254
盐城
255
阳江
256
阳泉
257
阳朔
258
扬州
259
烟台
260
宜昌
261
银川
262
英德
263
义务
264
宜兴
265
仪征
266
永康
267
岳阳
268
云浮
269
玉林
270
玉溪
271
余姚
272
273
z
274
275
湛江
276
肇庆
277
招远
278
郑州
279
镇江
280
中山
281
周口
282
舟山
283
珠海
284
诸暨
285
株洲
286
淄博
287
自贡
288
289
290
View Code

新建了一个类Xml解析类:ParseAlphAndCityName.h

1 #import 
2 3 @interface ParseAlphAndCityName : NSObject 4 { 5 NSMutableDictionary *_alphAndCityNameList; 6 } 7 8 @property (retain,nonatomic)NSMutableDictionary *alphAndCityNameList; 9 10 11 - (id)init;12 13 14 - (void)parseXml:(NSString *)xmlFilePath;15 16 17 + (void)test:(NSString *)xmlFilePath;18 19 @end

ParseAlphAndCityName.m

最主要的是parseXml:(NSString *)xmlFilePath;方法。利用了主流的对xml的解析方法。

不多说:看代码,已经注释的很清楚了。

1 #import "ParseAlphAndCityName.h" 2 #import "GDataXMLNode.h" 3  4  5 @implementation ParseAlphAndCityName 6  7 -(id)init 8 { 9     if (self = [super init]) {10         self->_alphAndCityNameList = [[NSMutableDictionary alloc] init];11     }12     13     return self;14 }15 16 17 - (void)parseXml:(NSString *)xmlFilePath18 {19     //将xml文件读取称二进制对象20     NSData *xmlData = [[NSData alloc] initWithContentsOfFile:xmlFilePath];21     //获取document对象,xml文档对象22     GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:nil];23     //获取根节点对象24     GDataXMLElement *rootElement = [document rootElement];25     26     //获取指定路径的所有节点 返回值为数组对象27     GDataXMLElement *dict = [[rootElement nodesForXPath:@"./dict" error:nil] objectAtIndex:0];28     //获取当前节点dict下的所有名为key节点的值29     NSArray *keyArray = [dict elementsForName:@"key"];30     31     //获取指定路径所有的array节点 返回值为数组对象32     NSArray *arrayArray = [rootElement nodesForXPath:@"./dict/array" error:nil];33     34     NSInteger len = [keyArray count];35     36     //遍历37     for (NSInteger i=0; i

main.m文件

#import "ParseAlphAndCityName.h"#define XmlFilePath @"/Users/qianfeng/Desktop/day23_OC13_xml文件/day23_OC13_XML城市解析_练习/qfile.xml"int main(int argc, const char * argv[]) {    @autoreleasepool {                [ParseAlphAndCityName test:XmlFilePath];            }    return 0;}

 

转载于:https://www.cnblogs.com/BeyondAverage0908/p/4601898.html

你可能感兴趣的文章
BIO、NIO和AIO的区别(简明版)
查看>>
通过minicom传送文件的相关配置及使用方法
查看>>
new Date().getTime()和System.currentTimeMillis()的区别
查看>>
UML面向对象分析与设计试题2008-B卷
查看>>
QTP 通过URL地址下载文件到本地(转)
查看>>
vs2013 密钥
查看>>
hadoop优化问题
查看>>
python基础(十二):变量类型
查看>>
百度地图JSSDK使用小实例
查看>>
Windows10安装anaconda
查看>>
一些js小知识点整理
查看>>
Linux -- setfacl
查看>>
IDEA更换JDK
查看>>
linux下内存释放问题
查看>>
popcount 算法分析
查看>>
般若波罗蜜多心经
查看>>
jquery ui datepicker
查看>>
Windows Phone开发之路(16) 如何在页面间传递数据
查看>>
Repeater 使用方法
查看>>
webpack的常识概念
查看>>