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有过一些经验?
感谢您的帮助!
答
首先,错误是一个指向对象的指针,所以如果你想打印出来。它应该是:NSLog(@"%@", error1);
错误是一样的。如果你想打印错误代码。你可以做NSLog(@"%d", [error1 code])
。你给我们的只是内存区域的错误
答
以下对我来说工作绝对正常。尝试一下。
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
干杯。
你可以编辑你的代码,让它看起来更好吗? – vodkhang 2010-07-21 15:15:26