请教xml解析问题

xiaoyangka 2013-03-12 11:17:36

<Directory id="1" parentid="0">第一级</Directory>
<Directory id="2" parentid="0">第二级
<Directory id="110" parentid="2">第二级子级一</Directory>
<Directory id="111" parentid="2">第二级子级二</Directory>
<Directory id="112" parentid="2">第二级子级三</Directory>
</Directory>
<Directory id="3" parentid="0">第三级</Directory>
<Directory id="4" parentid="0">第四级
<Directory id="113" parentid="4">第四级子级一</Directory>
<Directory id="114" parentid="4">第四级子级二</Directory>
<Directory id="115" parentid="4">第四级子级三</Directory>
</Directory>


哪位高手能给指点一下这种类型的xml怎么解析成NSMutableArray ???????
...全文
162 点赞 收藏 7
写回复
7 条回复
xiaoyangka 2013年03月14日
ok 搞定了 非常感谢楼上
回复 点赞
xiaoyangka 2013年03月12日
解析出来后NSMutableArray中的每一项都是一个Array,这个array中包含id,parentid,title三项
回复 点赞
zhang3652 2013年03月12日
.h @interface ReadXml : NSObject<NSXMLParserDelegate>{NSXMLParser *xmlRead;...... .m - (void)initProgram; { NSString *path = [[NSBundle mainBundle] pathForResource: @"xxxx" ofType: @"xml"]; //得到xml文件路径 NSFileHandle *file = [NSFileHandle fileHandleForReadingAtPath: path]; NSData *data = [file readDataToEndOfFile];//得到xml文件 //读取到NSDate中 xmlRead = [[NSXMLParser alloc] initWithData: data];//初始化NSXMLParser对象 [xmlRead setDelegate: self];//设置NSXMLParser对象的解析方法代理 [xmlRead parse];//调用代理解析NSXMLParser对象 } //解析器,从两个结点之间读取内容 - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { 解析到内容时会调用这个。比如<Directory id="1" parentid="0">第一级</Directory>的第一级就是string的内容 在这里吧内容和最后那个函数中取到的值一起保存,就是你要的一个数组 } //获得结点结尾的值 - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { 在这里判断什么时候结束了。你举例的这个无法判断,如果就这样估计你要用时间判断,多长时间没有调用这个方法就认为解析完成了。或者在头尾加个 <data> </data> 然后 if ([elementName isEqualToString:@"data"]) NSLog(@"%@",@"解析完成"); } //获得结点头的值 - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { 每个节点头都会调用这里如(<Directory)。在这里取头里的值,例如 [attributeDict objectForKey:@"parentid"]; 得到parentid的值,保存下来,在取内容时处理 }
回复 点赞
xiaoyangka 2013年03月12日
恩 想通过tableview做树形目录
回复 点赞
wallier 2013年03月12日
xml无限分类?
回复 点赞
wallier 2013年03月12日
哈哈,是不是太短了
回复 点赞
xiaoyangka 2013年03月12日
我刚接触ios开发,有人在吗?
回复 点赞
发动态
发帖子
iOS
创建于2008-03-10

1.4w+

社区成员

1.2w+

社区内容

主要讨论与iOS相关的软件和技术
社区公告
暂无公告