`

GDataXMLNode.h

    博客分类:
  • ios
 
阅读更多

首先就是先现在Google的第三方的开源包,地址自己Google就可以了。
把它加入到工程当中。然后GDataXMLNode.h中给我们提示到:
// libxml includes require that the target Header Search Paths contain
//
//   /usr/include/libxml2
//
// and Other Linker Flags contain
//
//   -lxml2



首先向Frameworks文件中添加libxml2.dylib这个库,而后再Croups & Files 侧边栏中双击我们的工程图标,找到 build 修改两个属性如下:
在Search Paths中 找到Header Search Paths  将其对应的值修改为:/usr/include/libxml2
在Linking中找到 Other Linker Flags 对应的值改为:-lxml2
OK准备工作完成,下面就可以写代码了


//获取数据的函数得到的是 NSData类型数据编码为GBK编码
NSURL *url = [[[NSURL alloc]initWithString:@"http://xxxxxxxxxxxxxx"]autorelease];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
    NSData *result = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error];

//将GBK编码转化为 UTF8编码
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
    NSString * myResponseStr = [[NSString alloc] initWithData:result encoding:enc];

// 截去 xml头字符串目的是防止在后面的解析过程种编码混乱
    NSMutableString *mutableString = [[[NSMutableString alloc]initWithString:myResponseStr]autorelease];
    [mutableString deleteCharactersInRange:NSMakeRange(0, strlen("<?xml version=\"1.0\" encoding=\"GBK\"?>"))];
    NSString *realXML = [[[NSString alloc]initWithString:mutableString]autorelease];

如果你在后面解析出来的代码中发现中文字符是乱码,那么很有可能就犯了我所犯的错误。据我了解,NSString 类型的变量里面的字符全部都是UTF8编码,
我们在得到字符串的时候将其由GBK编码转化为了UTF8编码。如果我们仍然带着xml的头部字符的时候,在下面的工作中很有可能GDataXMLNode仍然按照
GBK编码格式进行的解析。所返回出来的东西也就成了乱码。这些是我个人的理解,不知到是否正确,但是删掉这个头部字符串之后就可以了,不然就是乱码


OK,下面是得到属性里的值。Google为我们做了很多的事情,不得不感慨GDataXMLNode给我们带来了如此多的便利
直接代码:


    NSArray *getItems = [document nodesForXPath:@"//item" error:&error];

这里给出了一个老外写的代码:
///////////////////////              截取属性应用举例                   
//NSInteger type=[[(GDataXMLNode *)[[urls objectAtIndex:i] attributeForName:@"type"] stringValue] intValue];
//NSInteger bit_stream=[[(GDataXMLNode *)[[urls objectAtIndex:i] attributeForName:@"bit_stream"] stringValue] intValue];




///////////////////////////////////////////
////       调试信息   看是否获取属性成功  //////
//////////////////////////////////////////
NSLog(@"%@",[(GDataXMLNode *)[[getItems objectAtIndex:0]attributeForName:@"name"]stringValue] );

其他函数的具体用法看看头文件总的其他函数的说明就可以了。
还希望大家多多批评指正。

分享到:
评论

相关推荐

    GDataXMLNode

    1.将GDataXMLNode.h/m文件添加到工程中 2.向工程中增加“libxml2.dylib”库 3.在工程的“Build Settings”页中找到“Header Search Path”项,添加/usr/include/libxml2"到路径中

    【IOS开发】GDataXML解析XML

    GDataXMLNode.h和GDataXMLNode.m分别是该类的头文件和实现文件,它们定义了类的接口和具体实现。 在iOS项目中集成GDataXML,通常需要将GDataXMLNode.h和GDataXMLNode.m文件添加到工程中,或者通过CocoaPods等依赖...

    XMLTest-Swift:我从 Ray Wenderlich 站点 (http

    导航到子目录 Pod/Classes,然后选择 GDataXMLNode.h 和 GDataXMLNode.m。 当您将 GDataXMLNode.m 拖入您的项目时,您很可能会收到配置 Objective-C 桥接头的提示。 单击“是”将 Objective-C 桥接头添加到您的项目...

    GDataXMLNode解析xml文件

    #import "GDataXMLNode.h" ``` 2. **加载XML数据**:获取XML文件的内容。这可以通过读取本地文件或者从网络请求XML数据来实现。例如,如果XML文件在本地,你可以这样读取: ```objc NSString *filePath = [...

    GDataXML类

    首先,`GDataXMLNode.h`是这个库的核心头文件,它定义了`GDataXMLNode`类,这是解析XML文档的基础。`GDataXMLNode`类代表XML文档中的一个节点,它可以是元素、属性、文本、注释等。通过这个类,开发者可以访问和操作...

    GData解析xml(iphone开发)(源码)

    确保所有必要的头文件(如GDataXMLNode.h、GDataXMLDocument.h等)已包含在项目中,以便可以访问其API。 接下来,让我们了解GData如何解析XML。以下是一般步骤: 1. 创建XML文档对象:使用`GDataXMLDocument`类的...

    tree.h not found

    使用XML解析,导入GDataXMLNode后,添加libxml2.dylib , 运行 ,出现libxml/tree.h not found错误

    object c解析xml

    #import "GDataXMLNode.h" GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil]; GDataXMLElement *rootElement = [doc rootElement]; for (GDataXMLElement *child in ...

    ios-XMLDom解析.zip

    #import "GDataXMLNode.h" #import "GDataXMLDocument.h" ``` 接着,你需要创建一个`GDataXMLDocument`对象来加载XML数据。可以使用`initWithContentsOfURL:`或`initWithData:options:error:`方法来加载XML文件内容...

    iOS 简单实现RSS阅读

    #import "GDataXMLNode.h" @interface RSSParser : NSObject - (NSArray *)parseRSSFeed:(NSString *)feedURL; @end ``` 在`RSSParser.m`文件中,我们实现`parseRSSFeed:`方法: ```objc #import "RSSParser.h...

    GdataXml(IOS) 解析xml

    #import "GDataXMLNode.h" #import "GDataXMLDocument.h" ``` 接着,我们可以创建一个GDataXMLDocument对象,从XML字符串或文件加载数据: ```objc NSString *xmlString = @"&lt;root&gt;&lt;element&gt;Value&lt;/element&gt;&lt;/root...

    GDataXML解析

    #import "GDataXMLNode.h" #import "GDataXMLDocument.h" ``` 然后,加载XML数据,可以是从网络获取或本地文件读取: ```objc NSString *xmlString = @"&lt;your-xml-string&gt;"; NSData *data = [xmlString ...

    GDataXMLTest

    #import "GDataXMLNode.h" #import "GDataXMLDocument.h" ``` 然后,可以使用以下代码从项目文件或沙盒路径加载XML: ```objc // 从项目文件读取 NSString *filePath = [[NSBundle mainBundle] pathForResource:@...

    iphone使用GDataXMLParser解析xml文件小结

    #import "GDataXMLNode.h" #import "GDataXMLDocument.h" ``` 然后创建一个遵循`GDataXMLParserDelegate`协议的对象,这个对象将接收并处理解析过程中的事件。例如: ```objc @interface XMLParser : NSObject @end...

    iOS开发中常见的解析XML的类库以及简要安装方法

    在此目录中,找到GDataXMLNode.h和GDataXMLNode.m这两个文件,并将它们拖拽到Xcode项目中。将这两个文件添加到项目中后,确保选中项目,并在Xcode的目标设置中,将它们添加到编译文件列表中。完成这些步骤之后,...

    iOS之数据解析之XML解析详解

    a) 获取GDataXMLNode.h/m文件,并将它们添加到Xcode项目中。 b) 向项目中添加libxml2.tbd动态库引用。 c) 在项目的Build Settings中找到Header Search Paths项,并添加/usr/include/libxml2。 d) 将GDataXMLNode.h...

    iphone/ios开发写xml文件

    在实际项目中,根据需求,可能还需要对XML数据进行序列化和反序列化,或者结合其他库如GDataXMLNode来处理更复杂的XML操作。理解并熟练运用XML和相关工具,将极大地提升iOS应用的数据处理能力。

    iOS XMLReader

    在处理复杂或特殊的XML文档时,可能需要考虑其他更强大的解析库,如NSXMLParser或第三方库如GDataXMLNode。 总之,XMLReader是iOS开发中一个实用的XML解析工具,它利用SAX解析方式有效地将XML数据转化为Objective-C...

Global site tag (gtag.js) - Google Analytics