国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

iOS開發(fā)之XML解析

2019-11-14 19:18:33
字體:
供稿:網(wǎng)友

iOS開發(fā)之xml解析

1.XML格式

結(jié)構(gòu):層層嵌套的樹形結(jié)構(gòu)

<?xml version="1.0" encoding="utf-8" ?>

1.0 表示XML文件版本, utf-8 表示 內(nèi)部文本使用的編碼

<root> 表示根節(jié)點(diǎn)

<CityName>北京</CityName>  一個結(jié)點(diǎn), CityName是結(jié)點(diǎn)名, 北京結(jié)點(diǎn)值

<Item key="1" value="A"></Item>     key="1"是結(jié)點(diǎn)屬性, key屬性名, "1"屬性值

 

2.如何使用GData開源庫實(shí)現(xiàn)XML解析

   常用的XML解析方式

  (1)unix - libxml2 C接口

  (2)NSXMLParser UI提供的XML解析庫, 使用比較麻煩

  (3)google開發(fā)GData

2.1配置

//(1)添加頭文件搜索路徑    //      Header Search Paths-> /usr/include/libxml2    //(2)添加二進(jìn)制庫    //  Link library ->  libxml2.dylib    //(3)源文件添加編譯選項(xiàng)    //      -fno-objc-arc    //(4)添加頭文件    //  #import "GDataXMLNode.h"

  

 

2.2 GData的使用

 

//1.加載和解析XML文件    NSString *path = [[NSBundle mainBundle] pathForResource:@"xml.txt" ofType:nil];    NSData *data = [[NSData alloc] initWithContentsOfFile:path];    // GDataXMLDocument 表示XML文檔對象    // initWithData 使用NSData初始化, 就是解析    GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil];        //2.獲取指定結(jié)點(diǎn) XPath    //CityName路徑: /root/systemConfig/CityName    NSArray *array = [doc nodesForXPath:@"/root/systemConfig/CityName" error:nil];    //CityName    GDataXMLElement *element = [array firstObject];    NSLog(@"name=%@ value=%@",element.name,element.stringValue);        //3.獲取指定結(jié)點(diǎn)的屬性    NSArray *items = [doc nodesForXPath:@"/root/systemConfig/ComeChannel/Item" error:nil];    GDataXMLElement *item = [items firstObject];    //獲取屬性, 屬性使用GDataXMLElement表示    for(GDataXMLElement *attr  in item.attributes)    {        NSLog(@"a-name=%@ avalue=%@",attr.name,attr.stringValue);    }            //4.獲取所有指定名字的結(jié)點(diǎn)(不管位置)    //XPath語法: //Item    NSArray *allItem = [doc nodesForXPath:@"http://Item" error:nil];    for (GDataXMLElement *e in allItem) {        NSLog(@"name = %@",e.name);    }        //5.獲取所有指定名字的屬性(不管哪個結(jié)點(diǎn)的)    //XPath語法: //@value    NSArray *allValue = [doc nodesForXPath:@"http://@value" error:nil];    for (GDataXMLElement *e in allValue) {        NSLog(@"value = %@",e.stringValue);    }        //6.逐層遍歷XML文件    //獲取根節(jié)點(diǎn)    GDataXMLElement *root = doc.rootElement;    //獲取子節(jié)點(diǎn)    //root.children    //獲取子節(jié)點(diǎn)個數(shù)    //root.childCount    //獲取指定名字的子節(jié)點(diǎn)    //root elementsForName:<#(NSString *)#>

  


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东乡族自治县| 榕江县| 眉山市| 团风县| 鱼台县| 遂宁市| 阿合奇县| 宁安市| 陕西省| 沾益县| 鄂温| 永登县| 惠东县| 高州市| 潜江市| 从江县| 十堰市| 杨浦区| 军事| 龙里县| 稷山县| 资中县| 康保县| 始兴县| 临漳县| 开原市| 漳平市| 蒙阴县| 伊金霍洛旗| 梅州市| 永嘉县| 呼和浩特市| 文水县| 金平| 姜堰市| 理塘县| 鄂温| 年辖:市辖区| 乡宁县| 内丘县| 神木县|