如何使用来自给定url的TBXML方法加载XML文档?

问题描述:

我试图用TBXML的方法:如何使用来自给定url的TBXML方法加载XML文档?

+ (id)tbxmlWithURL:(NSURL*)aURL success:(TBXMLSuccessBlock)successBlock failure:(TBXMLFailureBlock)failureBlock; 

从TBXML + HTML.h 但我无法找到任何有关TBXMLSuccessBlockTBXMLFailureBlock。即使在官方教程中,您只能看到:但是,当我试用它时,Xcode告诉我没有这样的类方法。 顺便说一句,我使用ARC(所以我不写retain)。

所以问题是:我如何使用TBXML的方法从给定的url加载XML文档?

TBXMLSuccessBlockTBXMLFailureBlock被用作实现从给定的URL成功和不成功地检索XML数据的条件的有效方式。查看Apple的Blocks programming guide以获取有关Objective-C块的更多深入信息。

如果你只是想如何使用它的一些示例代码,这(使用最新版本TBXML的):

TBXMLSuccessBlock s = ^(TBXML *tbxml) { 
    NSLog(@"yay"); 
    // Do something with TBXML object "tbxml 
    // ... 
    // An example - print the name of an element 
    TBXMLElement *e = [TBXML childElementNamed:@"head" parentElement:tbxml.rootXMLElement]; 
    NSString *a = [TBXML elementName:e]; 
    NSLog(@"%@",a); 
}; 

TBXMLFailureBlock f = ^(TBXML *tbxml, NSError *error) { 
    // Do something to recover from the failure here 
    // .... 
    NSLog(@"nay"); 
}; 

[TBXML newTBXMLWithURL:[NSURL URLWithString:@"http://www.google.co.nz"] 
           success: s 
           failure: f]; 

当你执行这个代码,TBXMLSuccessBlock应该如果你有机会执行以下URL。如果您无法访问该网站,则会执行TBXMLFailureBlock。请注意,如果您正在使用的库是非ARC(假设库是源代码而不是静态或动态库),并且您试图将它集成到ARC-ified源中,则可以执行以下操作:这在Xcode下进入你的xcodeproj文件 - > Build Phases - >编译源文件,并且对于不使用ARC的每个.m文件,输入编译器标志-fno-objc-arc,这将告诉编译器不要使用ARC进行编译。

+0

谢谢:)它帮助了我。 – 2012-06-26 13:30:24

+0

由于某些原因在SDK 5下使用ARC,initwithurl记录到处都不适合我。抛出方法未知或不执行块。你的代码使它对我有用。 – Yahel 2012-07-25 08:10:10