iPhone,使用TouchXML解析HTML

时间:2010-07-21 14:38:35

标签: iphone html parsing touchxml

你有任何使用iPhone上的TouchXML lib解析HTML的经验。我想解析一些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标签开头,这意味着没有doctype。 initWithData方法似乎已崩溃并返回以下错误: 错误:错误域= CXMLErrorDomain代码= -1“操作无法完成。(CXMLErrorDomain错误-1。)”如果我尝试输出第二个错误,应用程序崩溃之前,可能导致initWithData不起作用的事实。

您是否有人使用TouchXML lib解析HTML有一些经验?

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

首先,错误是指向对象的指针,因此如果要将其打印出来。它应该是:NSLog(@"%@", error1);错误相同。如果要打印错误代码。你可以做NSLog(@"%d", [error1 code])。你给我们的只是错误的记忆区域

答案 1 :(得分:0)

以下对我来说一直都很好。试试吧。

 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时,它发生在我身上

干杯。