<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                @GDataXMLNode是Google提供的用于XML數據處理的類集。該類集對libxml2-DOM處理方式進行了封裝,能對較小或中等的XML文檔進行讀寫操作且支持XPath語法。 ? ? 1.[http://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/](http://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/),獲得GDataXMLNode.h和GDataXMLNode.m文件,進行如下操作將文件導入到Xcode的工程中: ??? 2.將GDataXMLNode.h/m文件添加到工程中; ??? 3.向工程中增加“libxml2.dylib”庫; ??? 4.在工程的“Build Settings”頁中找到“Header Search Path”項,添加“/usr/include/libxml2”到其路徑 ![](https://box.kancloud.cn/2016-01-11_569358af7d570.jpg) ? ??5.搜索框中搜索Other linker flags,同樣的方式添加-lxml2 ![](https://box.kancloud.cn/2016-01-11_569358af99a1d.jpg) **@代碼示例:** ? ? ? 首先在工程中新建一個xml文件,作為我們要解析的對象,新建方法是在工程中新建一個Empty的文件,命名為Student.txt(可以命名為.xml,這個隨意),然后添加內容: ~~~ <?xml version="1.0" encoding="UTF-8"?> <Students class="17班" school="中國"> <student> <number>1</number> <name>胡明濤</name> <sex>男</sex> <phone>123558</phone> </student> <student> <number>2</number> <name>成風采</name> <sex>男</sex> <phone>122323</phone> </student> <student> <number>3</number> <name>陳咬金</name> <sex>男</sex> <phone>21313558</phone> </student> <student sign="非應屆生"> <number>4</number> <name>天天下</name> <sex>男</sex> <phone>56453558</phone> </student> </Students> ~~~ ~~~ #pragma mark - GDataXMLNode - (void)onClickGDataXMLButton{ // 獲取工程目錄的xml文件 NSData * xmlData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Student" ofType:@"txt"]]; // 從文檔中讀出完整的XML數據,在內存中形成完整的樹形結構 NSError * error = nil; GDataXMLDocument * documents = [[GDataXMLDocument alloc]initWithData:xmlData options:0 error:&error]; // 取得根節點(element元素)---Students GDataXMLElement * rootEL = [documents rootElement]; // 獲取根節點下的節點,返回的數組---student NSArray * studentsArray = [rootEL elementsForName:@"student"]; for (int i = 0; i < [studentsArray count]; i++) { // 獲取單個節點對象 GDataXMLElement * student = [studentsArray objectAtIndex:i]; // 獲取student節點下name,number,sex,phone節點的值 GDataXMLElement * nameElement = [[student elementsForName:@"name"] lastObject]; GDataXMLElement * sexElement = [[student elementsForName:@"sex"]lastObject]; GDataXMLElement * numberElement = [[student elementsForName:@"number"]lastObject]; GDataXMLElement * phoneElement = [[student elementsForName:@"phone"]lastObject]; NSString * name = [nameElement stringValue]; NSString * number = [numberElement stringValue]; NSString * sex = [sexElement stringValue]; NSString * phone = [phoneElement stringValue]; // 讀標簽里面的屬性(attributeForName) NSString * sign = [[student attributeForName:@"sign"]stringValue]; if (sign) { NSLog(@"----------%@",sign); } NSLog(@"%@,%@,%@,%@",number,name,sex,phone); } #pragma mark 通過路徑,取得指定的節點值,所有節點中同一標簽的值 // 一個是相對路徑,一個是絕對路徑-----------(nodesForXPath) //NSArray * nameArray = [rootEL nodesForXPath:@"//name" error:nil]; NSArray * nameArray = [rootEL nodesForXPath:@"student/name" error:nil]; for (int i = 0; i < [nameArray count]; i++) { NSString * name = [[nameArray objectAtIndex:i] stringValue]; NSLog(@"---%@",name); } } ~~~ ~~~ <?xml version="1.0"?> <xml_api_reply version="1"> <cities> <city> <name data="保定"/> <latitude_e6> 38849998</latitude_e6> <longitude_e6> 115569999</longitude_e6> </city> <city default="true" > <name data="北京"/> <latitude_e6> 39930000</latitude_e6> <longitude_e6> 116279998</longitude_e6> </city> <city> <name data="沈陽"/> <latitude_e6> 41770000</latitude_e6> <longitude_e6> 123430000</longitude_e6> </city> <city> <name data="成都"/> <latitude_e6> 30670000</latitude_e6> <longitude_e6> 104019996</longitude_e6> </city> <city> <name data="大連"/> <latitude_e6> 38900001</latitude_e6> <longitude_e6> 121629997</longitude_e6> </city> <city> <name data="福州"/> <latitude_e6> 26079999</latitude_e6> <longitude_e6> 119279998</longitude_e6> </city> <city> <name data="阜陽"/> <latitude_e6> 32930000</latitude_e6> <longitude_e6> 115830001</longitude_e6> </city> <city> <name data="贛州"/> <latitude_e6> 25850000</latitude_e6> <longitude_e6> 114949997</longitude_e6> </city> <city> <name data="廣州"/> <latitude_e6> 23129999</latitude_e6> <longitude_e6> 113319999</longitude_e6> </city> <city> <name data="貴陽"/> <latitude_e6> 26579999</latitude_e6> <longitude_e6> 106720001</longitude_e6> </city> <city> <name data="哈爾濱"/> <latitude_e6> 45750000</latitude_e6> <longitude_e6> 126769996</longitude_e6> </city> <city> <name data="海口"/> <latitude_e6> 20030000</latitude_e6> <longitude_e6> 110349998</longitude_e6> </city> <city> <name data="邯鄲"/> <latitude_e6> 38029998</latitude_e6> <longitude_e6> 114419998</longitude_e6> </city> <city> <name data="杭州"/> <latitude_e6> 30229999</latitude_e6> <longitude_e6> 120169998</longitude_e6> </city> <city> <name data="合肥"/> <latitude_e6> 31870000</latitude_e6> <longitude_e6> 117230003</longitude_e6> </city> <city> <name data="菏澤"/> <latitude_e6> 36119998</latitude_e6> <longitude_e6> 114370002</longitude_e6> </city> <city> <name data="衡陽"/> <latitude_e6> 36119998</latitude_e6> <longitude_e6> 114370002</longitude_e6> </city> </cities> </xml_api_reply> ~~~ ~~~ #pragma mark - 解析citys - (void)parseCitys{ NSData * xmlCitysData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"citys" ofType:@"xml"]]; // 從文檔中讀取完成的XML文檔,在內存中形成完整的樹形結構 NSError * error = nil; GDataXMLDocument * documents = [[GDataXMLDocument alloc]initWithData:xmlCitysData options:0 error:&error]; // 取得根節點 GDataXMLElement * rootNode = [documents rootElement]; #pragma mark 獲取根節點xml_api_reply的數組,包含的是cities NSArray * citiesArray = [rootNode elementsForName:@"cities"]; for (int i = 0; i < [citiesArray count]; i++) { // 取得單個cities節點 GDataXMLElement * cities = [citiesArray objectAtIndex:i]; #pragma mark 獲取節點cities的數組,包含的是city NSArray * cityArray = [cities elementsForName:@"city"]; for (int j = 0; j < [cityArray count]; j++) { // 取得單個city節點 GDataXMLElement * city = [cityArray objectAtIndex:j]; #pragma mark city節點下面是3個并行的節點,都是1個,直接通過lastObject來取得想要的值 NSString * name = [[[[city elementsForName:@"name"]lastObject] attributeForName:@"data"] stringValue]; NSLog(@"name = %@",name); NSString * latitude_e6 = [[[city elementsForName:@"latitude_e6"]lastObject] stringValue]; NSLog(@"latitude_e6 = %@",latitude_e6); NSString * longitude_e6 = [[[city elementsForName:@"longitude_e6"]lastObject] stringValue]; NSLog(@"longitude_e6 = %@",longitude_e6); } } } ~~~ @GDataXMLNode方法小結: ? ? ?最終的數據讀出都是在GDataXMLElement對象中讀出的,以下方法均為GDataXMLElement類的方法 ? ? ?1、elementsForName方法,取標簽名 ?name標簽的名稱“name” ? ? ?2、attributeForName: 取屬性結點 再調stringValue即可取到屬性值? ? ? ?3、stringValue: 取標簽間的字符串值
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看