iOS:处理XML文件

NSXMLParser是标准库类

Book.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--Document created by: lishujun, code-style with XmlGrid Online XML Editor, http://xmlgrid.net -->
<book>
    <!--
    <summary>
        <author>金庸</author>
        <content>sfdgasidfhasdfb</content>
    </summary>
     -->

<chapters>
    <chapter name="hello">hello,world</chapter>
    <chapter name="lishujun">
        i‘m lishujun
        sdfsdfs        aaaasdfsdf
        qqqqqqqq
    </chapter>
    <chapter name="lishujun2">i‘m lishujun2</chapter>
</chapters>
</book>
XmlElement.h
#import <Foundation/Foundation.h>

@interface XmlElement : NSObject
@property (strong, nonatomic) NSString *elementName;
@property (strong, nonatomic) NSString *text;
@property (strong, nonatomic) NSDictionary *attributeDict;
@end
XmlElement.m
#import "XmlElement.h"

@implementation XmlElement
@synthesize elementName;
@synthesize text;
@synthesize attributeDict;
@end

BookXmlParser.h

#import <Foundation/Foundation.h>
#import "XmlElement.h"

@interface BookXMLParser : NSObject <NSXMLParserDelegate>
{
    XmlElement *_element;
    NSXMLParser *_parser;
}

-(id)initWithData:(NSData*)data;
-(BOOL)parse;

@end

BookXmlParser.m

#import "BookXMLParser.h"
#import "XmlElement.h"

@implementation BookXMLParser

-(id)initWithData:(NSData*)data
{
    if (self) {
        _parser = [[NSXMLParser alloc]initWithData:data];
        _parser.delegate = self;
    }
    return self;
}

-(BOOL)parse
{
    _element = nil;
    return [_parser parse];
}

-(void)  parser:(NSXMLParser *)parser
didStartElement:(NSString *)elementName
   namespaceURI:(NSString *)namespaceURI
  qualifiedName:(NSString *)qName
     attributes:(NSDictionary *)attributeDict
{

    [self processElement];

    _element = [[XmlElement alloc]init];
    _element.elementName = elementName;
    _element.attributeDict = attributeDict;
    _element.text = @"";
}

-(void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    if ([_element.text isEqualToString:@""]) {
        _element.text = string;
        //NSLog(@"Now element is %@", _element.text);
    }
}

-(void) processElement
{
    if (_element == nil) {
        return;
    }

    NSLog(@"process:");
    NSLog(@"%@, %@", _element.elementName, _element.text);
}
时间: 2024-12-15 23:53:19

iOS:处理XML文件的相关文章

iOS 读写xml文件

//*********写入文件,传入要保存的信息*********//保存xml -(void) saveXml:(NSString *)data { //创建文件管理器 NSFileManager *fileManager = [NSFileManager defaultManager ]; //获取路径 //参数NSDocumentDirectory要获取那种路径 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentD

IOS解析XML文件

这里使用NSXMLParser来解析,这个是apple自带的xml解析库,有个参考文章:http://www.raywenderlich.com/553/xml-tutorial-for-ios-how-to-choose-the-best-xml-parser-for-your-iphone-project 在Xcode中加入一个xml文件: <?xml version="1.0" encoding="ISO-8859-1"?> <root>

(转)U3D不同平台载入XML文件的方法——IOS MAC Android

自:http://www.cnblogs.com/sifenkesi/archive/2012/03/12/2391330.html 在PC上和IOS上读取XML文件的方式略有差别,经测试,IOS上不支持如下方法载入XML文件: XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("Assets/Resources/text.xml"); IOS上载入XML的正确方法有2种: (1)方法一 TextAsset textAsset =

【重要】U3D存放本地游戏存档——不同平台载入XML文件的方法——IOS MAC Android

在PC上和IOS上读取XML文件的方式略有差别,经测试,IOS上不支持如下方法载入XML文件: XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("Assets/Resources/text.xml"); IOS上载入XML的正确方法有2种: (1)方法一 TextAsset textAsset = (TextAsset)Resources.Load(filename, typeof(TextAsset)); XmlDocument

[iOS] XML解析和xml转plist文件(GDataXML)

iOS对于XML的解析有系统自带的SDK--NSXMLParser,鄙人愚拙,只会用GDataXML进行解析,这里仅介绍GData的使用.(以下图为例) 1.对于一个xml文件,先读取出来 NSData *xmlData = [[NSFileManager defaultManager]contentsAtPath:[NSString stringWithFormat:@"%@/%@",[[NSBundle mainBundle] resourcePath],@"test.x

在iOS 开发中用GDataXML(DOM方式)解析xml文件

因为GDataXML的内部实现是通过DOM方式解析的,而在iOS 开发中用DOM方式解析xml文件,这个时候我们需要开启DOM,因为ios 开发中是不会自动开启的,只有在mac 开发中才自动开启的.我们需要做如下配置: 当配置玩这个操作之后,再次进行编译的时候,系统还是报错,是因为我们还需要进行如下操作:

U3D不同平台载入XML文件的方法——IOS MAC Android

转自:http://www.cnblogs.com/sifenkesi/archive/2012/03/12/2391330.html 在PC上和IOS上读取XML文件的方式略有差别,经测试,IOS上不支持如下方法载入XML文件: XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("Assets/Resources/text.xml"); IOS上载入XML的正确方法有2种: (1)方法一 TextAsset textAsset =

iOS 中 XML 数据交换格式

     XML 是一种自描述的数据交换格式,但是 XML 的数据交换格式并没有 JSON 来的轻便,但是无可否认的是,XML 的应用范围也是非常广泛的,比如在 ROS(一个开源机器人操作系统)中利用 XML 来描述包的依赖关系等,当然还有很多了.      对于 XML 文档操作包括了"读"与"写",读入 XML 文档并分析的过程称为"解析" XML 文档,"解析" XML 文档在实际开发中是占很大比重的.      读写

iOS解析XML数据

iOS中解析XML数据的类是  NSXMLParser,详细使用方法如下: 假设现在在内存中有XML的二进制数据对象(NSData):data(该数据可能来自网络,也可能是本地的文件数据),设置NSXMLParser对象的协议,代码如下: NSXMLParser *xmlParse = [[NSXMLParser alloc] initWithData:data]; [xmlParse setDelegate:self]; [xmlParse parse];// 解析开始 解析对象设置后,我们需