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 メソッドは既にクラッシュしているようで、次のエラーを返します: Error: Error Domain=CXMLErrorDomain Code=-1 "The operation could't be completed. (CXMLErrorDomain error -1.)" 2 番目のエラーを出力しようとすると、アプリおそらくinitWithDataが機能しないという事実の原因です。

TouchXML ライブラリを使用して HTML を解析した経験のある人はいますか?

助けてくれてありがとう!

4

2 に答える 2

0

何よりもまず、 error はオブジェクトへのポインターであるため、それを出力したい場合。NSLog(@"%@", error1);エラーの場合も同じです。エラーコードを出力したい場合。できますNSLog(@"%d", [error1 code])。あなたが私たちに与えるのは、エラーのメモリ領域です

于 2010-07-21T15:17:58.237 に答える
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) {
  ....

また、リンクが正しいことを確認してください。http://www.foo.com/feedの代わりに feed://www.foo.com/feed を使用しているときに、数回発生しました

乾杯。

于 2011-07-29T08:52:38.850 に答える