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アプリの両方を制御しているので、サービスを変更して名前空間を削除または変更するか(これを行う方法へのポインター)、データを取得したら文字列から削除することができます電話に。
これらのオプションはどちらもハックのように感じます-より良いオプションはありますか?