XML解析

阳光穿透心脏的1/2处 2022-08-10 00:44 412阅读 0赞

解析xml经常使用库: GData
底层使用系统的libxml2库, 使用的时候添加libxml2

  1. (1)导入GData库, 直接拖进来
  2. (2)设置头文件搜索路径
  3. Build Setting--->header search Path
  4. 添加 /usr/include/libxml2
  5. (3)添加libxml二进制库
  6. Build Phases ---> Link Binary
  7. 添加 libxml2.dylib
  8. (4)如果是arc的工程
  9. Build Phases ---> Compile Source File
  10. GDataXmlNode.m(非arc的)

GDataXMLNode
获取当前节点的值
- (NSString *)stringValue;
//获取当前节点子节点的个数
- (NSUInteger)childCount;
//获取子节点数组
- (NSArray *)children;
//根据索引获取子节点
- (GDataXMLNode *)childAtIndex:(unsigned)index;

GDataXMLElement
//根据节点名字获取所有的节点名为name的节点数组
- (NSArray *)elementsForName:(NSString *)name;
//获取节点的属性
- (NSArray *)attributes;
//根据属性名获取属性节点
- (GDataXMLNode *)attributeForName:(NSString *)name;

GDataXMLDocument
//创建文档树
- (id)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding error:(NSError **)error;
//获取跟节点
- (GDataXMLElement *)rootElement;

//根据xpath 语法 获取 指定的节点数组
- (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error;

-—————————————————————————————————-
// 取文件 -> data
NSData *data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@”xml2” ofType:@”txt”]];

  1. // 读取整个xml文档
  2. GDataXMLDocument \*doc = \[\[GDataXMLDocument alloc\] initWithData:data options:0 error:nil\];
  3. /\*\* 这种方法也是可以的
  4. NSString \*xmlStr = \[\[NSString alloc\] initWithContentsOfFile:\[\[NSBundle mainBundle\] pathForResource:@"xml" ofType:@"txt"\] encoding:NSUTF8StringEncoding error:nil\];
  5. GDataXMLDocument \*doc2 = \[\[GDataXMLDocument alloc\] initWithXMLString:xmlStr options:0 error:nil\];
  6. \*/
  7. // 用xpath取出所有的book结点
  8. NSArray \*bookElementArray = \[doc.rootElement nodesForXPath:@"//book" error:nil\];
  9. // 把book结点搞到我们自定义的book对象中去
  10. for (GDataXMLElement \*bookElement in bookElementArray) \{
  11. // bookElement --> BookItem
  12. // NSLog(@"%@", \[self getBookItemWithElement:bookElement\]);
  13. BookItem \*book = \[\[BookItem alloc\] initWithElement:bookElement\];
  14. NSLog(@"%@", book);
  15. \}

发表评论

表情:
评论列表 (有 0 条评论,412人围观)

还没有评论,来说两句吧...

相关阅读

    相关 XML

    目录 XML解析方式 一.java中配置文件的三种配置位置以及读取方式 1.读取相同目录下配置文件 2.根目录 3.安全路径 WEB-INF 二.DOM4J 2

    相关 【二】、xml

    > 上一篇中说到封装了HttpClient助手类和Json解析响应数据的封装。这节主要扩展响应数据解析类,封装出一个xml解析的实现类,适应微信第三方服务的接口。 主要实现的

    相关 json、xml

    ![Image 1][] -------------------- > 除了XML和Json,文中还涉及到的一些知识:第三方类库的使用,获取本地文件内容,网站API使用,G