博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iPhone开发 解析xml NSData xml
阅读量:6227 次
发布时间:2019-06-21

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

原文摘自:

 

xml字符串为:

<users>
<user name="hoge" age="20" />
<user name="fuga" age="30" />
</users>

 

//解析按钮事件

-(IBAction)btnXml

{

    

    NSString* str= [uitextview1 text];

    //string转成data

    NSData *xmlData = [str dataUsingEncodingNSUTF8StringEncoding];

    //xml进行解析需要使用NSXMLParser类,首先声明一个NSXMLParser对象    

    //开始解析  

    NSXMLParser* xmlRead = [[NSXMLParser allocinitWithData:xmlData];//初始化NSXMLParser对象   

    [xmlRead setDelegate:self];//设置NSXMLParser对象的解析方法代理  

    [xmlRead parse];//调用代理解析NSXMLParser对象,看解析是否成功      

}

 

//解析器,从两个结点之间读取内容

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {

    //NSLog(@"%@",string);

}

 

//获得结点结尾的值

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName

  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {

    //NSLog(@"%@",elementName);

}

//获得结点头的值

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName

  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

    attributes:(NSDictionary *)attributeDict 

{

    //NSLog(@"%@",elementName);

    if([elementName isEqualToString@"user"])

    {

        NSString* strName=[attributeDict valueForKey:@"name"];

        NSString* strAge=[attributeDict valueForKey:@"age"]; 

        NSString* strUser=uitextview2.text;

        strUser=[strUser stringByAppendingFormat:@"姓名:%@,年龄:%@\n",strName,strAge];

        [uitextview2 setText:strUser];

        //NSLog(@"姓名:%@,年龄:%@", strName,strAge);

    }

}

 

备注:如果想获得属性,就要在 didStartElement这个函数中进行解析。如果想获取元素体的内容,那么就要在

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

 

转载于:https://www.cnblogs.com/85538649/archive/2012/06/14/2548854.html

你可能感兴趣的文章
利用AudioContext来实现网易云音乐的鲸鱼音效
查看>>
简述原型链是什么,有什么用处?若想访问一个对象的原型,应该使用什么方法?...
查看>>
HBuilder开发WAP2APP增加扫一扫功能
查看>>
程序员选电脑,你会不会买Mac?
查看>>
JS 里的数据类型转换
查看>>
python大佬养成计划----正则表达式
查看>>
JS原型与原型链总结篇
查看>>
mybatis缓存机制与陷阱
查看>>
【CSS】CSS常用技巧
查看>>
IO多路复用(二) -- select、poll、epoll实现TCP反射程序
查看>>
ECMAScript6(11):Set 与 Map
查看>>
Spring
查看>>
redis系列:通过队列案例学习list命令
查看>>
关于如何把项目做得更好的一次思考
查看>>
webpack4 配置解析和实战
查看>>
Mac OS 使用iTerm2实现服务器间文件的上传下载
查看>>
react学习笔记二----nodejs服务器搭建及异常处理
查看>>
PHP 操作 Beanstalkd 方法及参数注释
查看>>
Elasticsearch Java High Level REST Client(入门)
查看>>
开了香槟的Kubernetes并不打算放慢成功的脚步
查看>>