iPhone,使用TouchXML解析HTML

问题描述:

有任何解析HTML与iPhone上的TouchXML lib的经验。我想解析一些HTML,因此尝试做以下操作:iPhone,使用TouchXML解析HTML

self.parser = [[CXMLDocument alloc]initWithData:self.html options:0 error:&error1]; 

if (error1) { 
    NSLog(@"Error: %d", error1); 
} 

NSError *error; 

NSArray *resultNodes = [[NSArray alloc]init]; 

NSLog(@"starting to do some crazy parsing"); 


resultNodes = [self.parser nodesForXPath:@"//div" error:&error]; 
if (error) 
    NSLog(@"initWithData error : %d", error); 

不幸的是,根本不起作用。我不知道如何正确调试。我的HTML应该是有效的。它只是从一个html标签开始,这意味着没有文档类型。 initWithData方法似乎已崩溃并返回以下错误: 错误:错误域= CXMLErrorDomain代码= -1“该操作无法完成。(CXMLErrorDomain错误-1。)”如果我尝试输出第二个错误应用程序崩溃之前,可能导致initWithData不起作用的事实。

有没有人对TouchXML库解析HTML有过一些经验?

感谢您的帮助!

+0

你可以编辑你的代码,让它看起来更好吗? – vodkhang 2010-07-21 15:15:26

首先,错误是一个指向对象的指针,所以如果你想打印出来。它应该是:NSLog(@"%@", error1);错误是一样的。如果你想打印错误代码。你可以做NSLog(@"%d", [error1 code])。你给我们的只是内存区域的错误

+0

错误:错误域= CXMLErrorDomain代码= -1“操作无法完成(CXMLErrorDomain错误-1。)” – Dude 2010-07-21 15:22:22

+0

以上是我在打印出错时返回的内容 – Dude 2010-07-21 15:22:45

+0

其实当我打印error1时。当我尝试打印出错误时它会崩溃,这是示例中的第二个错误 – Dude 2010-07-21 15:25:09

以下对我来说工作绝对正常。尝试一下。

CXMLDocument *rssParser = [[[CXMLDocument alloc] initWithContentsOfURL:url options:0 error:nil] autorelease]; 
resultNodes = [rssParser nodesForXPath:@"//item" error:nil]; 

// Loop through the resultNodes to access each items actual data 
for (CXMLElement *resultElement in resultNodes) { 
    .... 

此外,请确保您的链接是正确的。偶尔发生在我身上的时候,我正在使用feed://www.foo.com/feed而不是http://www.foo.com/feed

干杯。