2011-10-20 7 views
0

プログラミングに問題があります。私は解析のためにtouchxmlを使用しています。以前は問題はありませんでした。今私はXML文字列を解析したい。 私は、インターネット上ですべてを見てきましたが、答えを見つけることができません(私はたぶん私は間違ってここで何かをやっているの前にinitWithXMLStringやったことがない?)構文解析のためのxmlをtouch xmlで解析できません

私の現在のコード:。

NSArray *resultNodes = NULL; 
CXMLDocument *rssParser = [[CXMLDocument alloc] initWithXMLString:str options:0 error:nil]; 
NSString *strName; 
resultNodes = [rssParser nodesForXPath:@"//FictionBook" error:nil]; 
NSLog(@"RESULT NODE COUNT =%d",[resultNodes count]); 

と私の文字列は次のようになります。

"<?xml version="1.0" encoding="UTF-8"?> 
<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink"><description><title-info><genre>prose_contemporary</genre> <author><first-name>Мария</first-name><last-name>Метлицкая</last-name><id>f97cbf85-bb7c-102b-8639-bb1d5f8374bd</id></author><book-title>Наша маленькая жизнь (сборник)</book-title> <annotation><p>Мария Метлицкая рассказывает о простых людях – они не летают в космос, не блистают на подмостках сцены, их не найдешь в списке Forbеs.</p></annotation></description></title-info></FictionBook>" 

XMLが有効であるとapears、私は約10のXMLバリデータをチェックしました。

[resultNodes count]から0が得られます。

誰も以前に似たようなものを見つけましたか?

ありがとうございます!

NSError *error; 
NSArray *resultNodes = NULL; 
CXMLDocument *rssParser = [[CXMLDocument alloc] initWithXMLString:str options:0 error:&error]; 
NSLog("Error: %@",error); 

をまた、あなたのXML名前空間を持つ要素が含まれていない:解析中

+0

あなたのXML文字列を見てと終了します。、他の方法で終了する必要がありますか? – Saran

+0

@Saran japそれは私のXMLファイルが非常に大きいので、私はここにそれを投稿したくないので、私はここで終了タグを書きました。 しかし、問題は別の場所にあると思います。 – Lukas

+0

NSXMLParserを使用していないという理由がありますように! – Devarshi

答えて

0

は、エラーがあったかどうかをチェックしてみ?

+0

私はエラーをログアウトしようとするとexc_bad_accessをスローしますが、なぜこれが起こっているのかを実際には理解していません。 – Lukas

+0

これはエラー情報がないためですか? – Lukas

+0

私はあなたの答えが正しいとマークするでしょう。私の問題の答えに最も近いので、それは名前空間の要素のためです。なぜなら、ルート要素には2つあったからです。http:// stackoverflow.com/questions/7295605/cxmldocument-cxmlnode-nodeforxpath-problem ありがとうございました! – Lukas

0

まず、http://www.xmlvalidation.com/によってxmlの検証を行うかどうかを確認し、検証したら応答が得られない場合は、xmlパーサによってエラーがスローされたことをエラーコードで確認してから、エラーコード問題です。

+0

助けてくれてありがとう!しかし、私はすでにそれを試したことがあります。 また、私はMaciulisのようなエラーを出そうとしています。 NSError * error; NSArray * resultNodes = NULL; CXMLDocument * rssParser = [[CXMLDocument alloc] initWithXMLString:strオプション:0エラー:&エラー]; NSLog( "エラー:%@"、エラー); しかし、exc_bad_accessは.. – Lukas

+0

パーサーの代理人にエラーコードがありますか?そうでない場合は、このデモでnsxmlパーサを使用してxmlを試してみてください。少なくとも、さまざまな方法で問題を特定することができます。 – Ballu