1

iOSでKissXMLを使用して、wcf REST Webサービス(c#で記述)から返されたXMLデータを解析しています。

私が抱えている問題は、KissXMLがWebサービスから取得したXMLデータの名前空間を好まないことです。

簡単な例では、取得するXMLデータは次のようになります。

<ArrayOfItem  xmlns="http://schemas.datacontract.org/2004/07/DataUpdateService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Item>Test</Item></ArrayOfItem>

KissXMLはxpathを使用してこのXMLを解析できないようです

resultNodes = [xmlDoc nodesForXPath:@"//Item" error:&error];

XML文字列からデフォルトの名前空間を削除すると、正常に機能します。

<ArrayOfItem xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Item>Test</Item></ArrayOfItem>

したがって、このXMLは問題なく、上記のObjective-cを使用すると、配列に1つのオブジェクトが含まれます(予想どおり)。

だから問題は:これについて私は何をすべきか?私はサービスとiOSアプリの両方を制御しているので、サービスを変更して名前空間を削除または変更するか(これを行う方法へのポインター)、データを取得したら文字列から削除することができます電話に。

これらのオプションはどちらもハックのように感じます-より良いオプションはありますか?

4

1 に答える 1

0

defaultOutgoingResponseFormatをJsonに変更し、xmlの代わりに処理することをお勧めします。

なんで?ここを読んでください: http ://www.json.org/xml.html

そしてまたそれはあなたの問題を解決します:)

于 2012-04-11T18:00:23.627 に答える