你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS技巧綜合 >> iOS dom解析xml格式數據

iOS dom解析xml格式數據

編輯:IOS技巧綜合
[摘要]本文是對iOS dom解析xml格式數據的講解,對學習IOS蘋果軟件開發有所幫助,與大家分享。

問題描述:接口返回的是xml格式數據,而且節點名居然都是相同的,采用了dom解析最終解決

一.文件導入

1.下載GDataXMLNode.h 和 GDataXMLNode.m文件,導入工程(csdn文件下載鏈接:http://download.csdn.net/detail/wusangtongxue/9502292)

2.配置環境:

(1)改成ARC環境(-fno-objc-arc);

(2)找到“Paths\Header Search Paths”項,並添加“/usr/include/libxml2”到列表中;

(3)找到“Linking\Other Linker Flags”項,並添加“-lxml2”到列表中

3.導入SBJson文件夾,用於將解析後的數據轉換成字符串類型

二.實際項目

1.網頁打印的xml格式數據

2.導入#import "GDataXMLNode.h",解析

-(void)xmlHttpRequest
{
    NSString *str = 內網網址;
    NSURL *urll = [NSURL URLWithString:str];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:urll cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
    // 2.
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        
            NSError *errror = nil;
            GDataXMLDocument *document = [[GDataXMLDocument alloc]initWithData:data options:0 error:&errror];
            //獲取根節點
            GDataXMLElement *rootElement = [document rootElement];
            //獲取所有子節點 裝進一個數組
            NSArray *array = [rootElement elementsForName:@"string"];
            NSLog(@"打印數組:%@",array);
        NSString *string =[NSString stringWithFormat:@"%@",array[2]];
        NSRange startStr = [string rangeOfString:@"<string>"];
        NSRange end = [string rangeOfString:@"</string>"];
        NSString *sub = [string substringWithRange:NSMakeRange(startStr.location+8, end.location-startStr.location-9)];
        NSLog(@"打印截取後的字符串:%@",sub);

    }];

}

array:打印數組:(
"GDataXMLElement 0x7ff26ad97f10: {type:1 name:string xml:\"<string>610</string>\"}",
"GDataXMLElement 0x7ff26ad97cb0: {type:1 name:string xml:\"<string/>\"}",
"GDataXMLElement 0x7ff26ad97ce0: {type:1 name:string xml:\"<string>http://192.168.1.1:8080/</string>\"}",
"GDataXMLElement 0x7ff26adbb480: {type:1 name:string xml:\"<string/>\"}"
)
sub:打印截取後的字符串:http://192.168.1.1:8080
這樣就可以得到NSString數據了

注:網址是內網,需要根據自己的需要進行解析 這裡的例子是本人項目的xml數據,有點特殊是節點名稱都是相同的

參考網址:http://www.cnblogs.com/pengyingh/articles/2342164.html

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved