XML文件转化成NSData对象的方法
NSData*xmlData=[[NSDataalloc]initWithContentsOfFile:[NSStringstringWithFormat:@"%@/People.xml",[[NSBundlemainBundle]resourcePath]]]; //2.将xmlData转化成xml文档 GDataXMLDocument*xmlDocument=[[GDataXMLDocumentalloc]initWithData:xmlDataoptions:0error:nil]; //3.得到节点 GDataXMLElement*rootElement=xmlDocument.rootElement; //4.得到子节点 /*NSArray*elementArray=rootElement.children; //得到classone节点 GDataXMLElement*classoneElement=[elementArrayfirstObject]; for(GDataXMLElement*elementinclassoneElement.children) { //得到当前节点的文本值 NSLog(@"%@",element.stringValue); if(element.children.count>0){ GDataXMLElement*infoElement=[element.childrenlastObject]; //获得节点的所有属性和属性值 NSArray*attArray=infoElement.attributes; for(GDataXMLElement*attElementinattArray){ //得到属性名和属性值 NSLog(@"%@-%@",attElement.name,attElement.stringValue); } } } */ //模糊查找 NSArray*eArray=[rootElementnodesForXPath:@"//info"error:nil]; NSLog(@"%@",eArray);
iPhone开发解析xmlNSData
具体内容请看下文代码分析:
xml字符串为: <users> <username="hoge"age="20"/> <username="fuga"age="30"/> </users> //解析按钮事件 -(IBAction)btnXml { NSString*str=[uitextview1text]; //string转成data NSData*xmlData=[strdataUsingEncoding:NSUTF8StringEncoding]; //对xml进行解析需要使用NSXMLParser类,首先声明一个NSXMLParser对象 //开始解析 NSXMLParser*xmlRead=[[NSXMLParseralloc]initWithData:xmlData];//初始化NSXMLParser对象 [xmlReadsetDelegate:self];//设置NSXMLParser对象的解析方法代理 [xmlReadparse];//调用代理解析NSXMLParser对象,看解析是否成功 } //解析器,从两个结点之间读取内容 -(void)parser:(NSXMLParser*)parserfoundCharacters:(NSString*)string{ //NSLog(@"%@",string); } //获得结点结尾的值 -(void)parser:(NSXMLParser*)parserdidEndElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURIqualifiedName:(NSString*)qName{ //NSLog(@"%@",elementName); } //获得结点头的值 -(void)parser:(NSXMLParser*)parserdidStartElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURIqualifiedName:(NSString*)qName attributes:(NSDictionary*)attributeDict { //NSLog(@"%@",elementName); if([elementNameisEqualToString:@"user"]) { NSString*strName=[attributeDictvalueForKey:@"name"]; NSString*strAge=[attributeDictvalueForKey:@"age"]; NSString*strUser=uitextview2.text; strUser=[strUserstringByAppendingFormat:@"姓名:%@,年龄:%@\n",strName,strAge]; [uitextview2setText:strUser]; //NSLog(@"姓名:%@,年龄:%@",strName,strAge); } }