<?xml version ="1.0" encoding="UTF8"
standalone="yes"?>
<!--以下是你一个学生名单-->
<student_list>
<student>
<stu_num>200030081205</stu_num>
<stu_name>otis</stu_name>
<stu_class>T23</stu_class>
</student>
<student>
<stu_num>200330081205</stu_num>
<stu_name>this</stu_name>
<stu_class>T24</stu_class>
</student>
-(IBAction)btnClickXMLParseOfSAX:(id)sender
{//加载文件
NSString*path=[[NSBundlemainBundle]pathForResource:@"text"ofType:@"xml"];
NSFileHandle*file=[NSFileHandlefileHandleForReadingAtPath:path];//定义一个文件句柄关联路径
NSData*data=[file readDataToEndOfFile];//读取文件数据到DATA
[file closeFile];//关闭文件
self.m_pXmlPatse=[[NSXMLParseralloc]initWithData:data];//根据XML数据进行创建解析器
[self.m_pXmlPatsesetDelegate:self]; //设定代理
self.m_pStrSaxTmp=[[NSMutableStringalloc]init];
self.m_pStrSaxResult=[[NSMutableStringalloc]init];
BOOL flag=[_m_pXmlPatseparse];//解析 返回一个BOOL值 标志解析成功或失败
if (flag) {
[_m_pStrSaxResultappendFormat:@"%@\r\n",@"获取指定路径的 xml 文件失败"];
}
else
{
[_m_pStrSaxResultappendFormat:@"%@\r\n",@"获取指定路径的 xml 文件失败"];
}
}
-(void)parserDidStartDocument:(NSXMLParser *)parser
{
[_m_pStrSaxResultappendFormat:@"%@\r\n",@"开始解析 xml of SAX文件"];
[_m_pStrSaxResultappendFormat:@"%@\r\n",@"******student********"];
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string//遇到数据时回调,
{
[_m_pStrSaxTmpsetString:@" "];
[_m_pStrSaxTmpappendFormat:@"%@",string];
NSLog(@"string=%@",string);
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if (NSOrderedSame==[elementName compare:@"student"]) {
[_m_pStrSaxResultappendFormat:@"%@\n",@"**********student*******"];
}
else if(NSOrderedSame==[elementName compare:@"student_list"])
{
}
else{
[_m_pStrSaxResultappendFormat:@"%@=%@\r\n",elementName,_m_pStrSaxTmp];
}
}
//完成解析XML文档
-(void)parserDidEndDocument:(NSXMLParser *)parser
{
[_m_pStrSaxResultappendFormat:@"%@",@"解析xml 完成"];
[_m_pTextViewResultsetText:_m_pStrSaxResult];