2012-04-11 7 views
1

ich KissXML auf iOS bin mit dem XML-Daten aus einem WCF-REST-Webdienst zurückgegeben analysieren (in C# geschrieben)Handhabung wcf Rast Web-Service KissXML verwenden - wie soll ich Namespace Problem umgehen

Das Problem ich habe, ist dass KissXML den Namespace in den XML-Daten, die ich vom Web-Service bekomme, nicht mag.

In einem trivialen Beispiel die XML-Daten, die ich wie folgt aussieht erhalten:

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

KissXML kann nicht scheinen, XPath zu verwenden, um diese XML

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

zu analysieren Wenn ich den Standard-Namespace aus entfernen die XML-Zeichenfolge - dann funktioniert es gut.

Also dieses XML ist in Ordnung und mit dem Ziel-c oben bekomme ich 1 Objekt in meinem Array (wie erwartet).

Die Frage ist also: Was soll ich dagegen tun? Ich habe sowohl die Kontrolle über den Dienst als auch über die iOS-App, so dass ich entweder den Dienst ändern oder versuchen kann, den Namespace zu entfernen oder zu ändern, oder ich kann ihn aus meiner Zeichenfolge rippen, sobald ich die Daten erhalten habe zum Telefon.

Beide Optionen fühlen sich ein bisschen wie ein Hack an - gibt es bessere Optionen?

Antwort

0

Ich würde empfehlen, das defaultOutgoingResponseFormat zu Json, zu ändern und es anstelle von XML zu behandeln.

Warum? Lesen Sie hier: http://www.json.org/xml.html

und auch wird es Ihr Problem lösen :)