2

TBXMLによるXMLの解析について本当に助けが必要です。ビューにボタンがあるデモプロジェクトを作成しました。ユーザーがこのボタンを押すと、別のクラスからTBXML解析関数を呼び出すだけです。TBXMLParsing関数が正しく機能するかどうかをテストするためにこれを行っています。そして、それは私のデモプロジェクトでかなりうまく機能します。

最後に、テストした後、最初のビューにボタンがある実際のプロジェクトに関数をコピーして貼り付けます。そのボタンをクリックすると、TBXMLParsing関数が呼び出されます。つまり、基本的にはデモプロジェクトと同じです。ただし、TBXMLParsing関数は機能しません。すべての要素を通過することはできません。

あなたはなにか考えはありますか?私を助けてくれてありがとう。

更新:実際のデバイスでアプリをシミュレートすると機能しますが、シミュレーターでシミュレートするとXMLを通過しません。それはとても奇妙です。ただし、新しいプロジェクトを作成すると、シミュレーターでは機能します。したがって、私のアプリにはパーサーXMLを妨げる何かがあるはずです。

何か案は?ありがとうございました

Update2:

NSData *data = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:@"http://dl.dropbox.com/u/37064335/ex.xml"]];

TBXML *tbxml = [[TBXML alloc] initWithXMLData:data];
[data release];
TBXMLElement *root = tbxml.rootXMLElement;

// if root element is valid
if (root) {
    NSLog(@"root =%s",root->name);

これは私を台無しにした部分です。デモアプリでテストしました。Nslogroot=GetUserAccountsRespondただし、私のアプリではNslog root =(nil-何も出力されません)。どちらのプロジェクトも基本的に同じです。

4

2 に答える 2

4

OKこれが私と同じ問題を抱えているかもしれない人のための解決策です。問題は、プロジェクトを分析(shift + command + B)したときに、xcodeがTBXML.mで「セマンティックの問題」を検出したためです。次に、xcodeのガイドに従って、TBXML.mで「ProcessXML」(line258、311、および458)と表示されている3か所で「=」を「==」に変更しました。したがって、TBXMLは、入力XMLを処理できないため、機能しません。この問題は私を2日間夢中にさせました。TBXMLを提供してくれたTomBradleyに感謝します

于 2011-10-28T14:38:09.293 に答える
0

解析しようとしているXMLドキュメントが正しくロードされていることを確認してから、TBXMLに渡してデコードします。シムのコードの読み込みに問題があるように思えます。ファイルの内容をログに出力して、正しいことを確認してください。

于 2011-10-27T22:05:31.540 に答える