0

你们中的任何人都有使用 iPhone 上的 TouchXML 库解析 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 库解析 HTML 方面取得了一些经验?

谢谢你的帮助!

4

2 回答 2

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

干杯。

于 2011-07-29T08:52:38.850 回答
0

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

于 2010-07-21T15:17:58.237 回答