真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

XML數(shù)據(jù)解析的系統(tǒng)方法有哪些

這篇文章主要介紹XML數(shù)據(jù)解析的系統(tǒng)方法有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、新北ssl等。為數(shù)千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的新北網(wǎng)站制作公司

XML是一種自描述的數(shù)據(jù)交換格式。是一種非常重要的數(shù)據(jù)交換 格式,多年來一直用于各種計算機語言中。XML類似HTML,有一對對標簽對,格式比HTML嚴謹,一個<>開始,一個結(jié)尾.

解析的內(nèi)容為:


    
        張三
        123456
        小張
        1111111111
    
     
    
        張三
        2222222
        小四兒
        李四是個好學(xué)生
    
     
    
        張三
        88888888
        小五
        1234567890
    
     

事先已將數(shù)據(jù)讀取并存儲在data中.
創(chuàng)建一個類,繼承自NSObject,命名為userInfo

@property(nonatomic,copy)NSString *uID;
@property(nonatomic,copy)NSString *name;
@property(nonatomic,copy)NSString *password;
@property(nonatomic,copy)NSString *nickname;
@property(nonatomic,copy)NSString *description;

再創(chuàng)建一個類,同樣繼承自NSObject,命名為userParser,實現(xiàn)xml文件的讀取.

userParser.h

#import 
#import "user.h"
@interface userParser : NSObject
//存儲信息的數(shù)組
@property(nonatomic,retain)NSMutableArray *array;
//實例
@property(nonatomic,retain)user *people;
//創(chuàng)建字符串保存信息
@property(nonatomic,copy)NSMutableString *buffer;
//讀取xml文件
-(void)parserWithString:(NSString *)string;
@end

userparser.m

#import "userParser.h"
 
@implementation userParser
-(void)parserWithString:(NSString *)string
{
    //使用系統(tǒng)XML解析方法
    NSXMLParser *parser=[[NSXMLParser alloc]initWithData:[string dataUsingEncoding:NSUTF8StringEncoding]];
    //設(shè)置代理
    parser.delegate=self;
    //開始解析
    [parser parse];
}
#pragma mark ---NSXMLParserDelegate---
//開始解析
- (void)parserDidStartDocument:(NSXMLParser *)parser
{
    NSLog(@"it begin");
}
//解析結(jié)束
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
    NSLog(@"it is over");
    for (int i=0; i<_array.count; i++) {
        user *user=_array[i];
        NSLog(@"%@,%@,%@,%@,%@",user.uID,user.name,user.password,user.nickname,user.description);
    }
}
//遇到開始標簽
//attributeDict標簽屬性
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI 
qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    if ([elementName isEqualToString:@"users"]) {
        _array=[[NSMutableArray alloc]init];
    }
    else if ([elementName isEqualToString:@"user"])
    {
        _people=[[user alloc]init];
        //
        _people.uID=[attributeDict objectForKey:@"id"];
    }
    else if ([elementName isEqualToString:@"name"])
    {
        _buffer=[[NSMutableString alloc]init];
    }
    else if ([elementName isEqualToString:@"password"])
    {
        _buffer=[[NSMutableString alloc]init];
    }
    else if ([elementName isEqualToString:@"nickname"])
    {
        _buffer=[[NSMutableString alloc]init];
    }
    else if ([elementName isEqualToString:@"description"])
    {
        _buffer=[[NSMutableString alloc]init];
    }
     
}
//結(jié)束標簽
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    if ([elementName isEqualToString:@"name"]) {
        _people.name=_buffer;
    }
    else if ([elementName isEqualToString:@"password"])
    {
        _people.password=_buffer;
    }
    else if ([elementName isEqualToString:@"nickname"])
    {
        _people.nickname=_buffer;
    }else if ([elementName isEqualToString:@"description"])
    {
        _people.description=_buffer;
    }
    else if ([elementName isEqualToString:@"user"])
    {
        [_array addObject:_people];
    }
}
//讀取內(nèi)容
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    //NSCharacterSet字符串結(jié)合,取出字符串中的空格
    [_buffer appendString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
}

在viewcontroller中,創(chuàng)建userparser的實例對象,通過parserWithString方法實現(xiàn)數(shù)據(jù)解析

userParser *uparser=[[userParser alloc]init];
[uparser parserWithString:user];

注:將數(shù)據(jù)解析與界面顯示分開寫有助于減低程序的耦合,同時也符合MVC編程模式.

以上是“XML數(shù)據(jù)解析的系統(tǒng)方法有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)站題目:XML數(shù)據(jù)解析的系統(tǒng)方法有哪些
分享路徑:http://weahome.cn/article/pepcgc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部