2010-06-12 5 views
0

J'appelle les webservices. Le service Web renvoie les données au format XML. Maintenant, le problème est que les données XML ne sont pas reçues dans un format approprié. À la place de "<", ">" il retourne au format html. J'ai donc assigné le xmldata à un NsMutableString et remplacé les caractères d'échappement de sorte que le format des données XML est correct. Ensuite, j'ai réaffecté NSMutableString à NSData afin que je puisse analyser les balises. mais le problème est que xmlparser s'arrête là où se trouvent les données xml. Où j'ai remplacé les étiquettes. ça ne va pas plus loin. quelqu'un peut-il me faire comprendre ce qui se passe ????nsdata à nsdata à nsdata

C'est la réponse xml du service web que j'ai appelé.

<?xml version="1.0" encoding="ISO-8859-1"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> 
<SOAP-ENV:Body> 
<ns1:GetCustomerInfoResponse xmlns:ns1="http://aa.somewebservice.com/phpwebservice"> 
<return xsi:type="xsd:string"> 
    &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;customer&gt;&lt;id&gt;1&lt;/id&gt;&lt;customername&gt;Hitesh&lt;/customername&gt;&lt;phonenumber&gt;98989898&lt;/phonenumber&gt;&lt;/customer&gt; 
</return> 
</ns1:GetCustomerInfoResponse> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

Et c'est après que j'ai remplacé les étiquettes.

<?xml version="1.0" encoding="ISO-8859-1"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> 
<SOAP-ENV:Body> 
<ns1:GetCustomerInfoResponse xmlns:ns1="http://aa.somewebservice.com/phpwebservice"> 
<return xsi:type="xsd:string"> 
<?xml version="1.0" encoding="utf-8"?> 
<customer><id>1</id><customername>Hitesh</customername><phonenumber>98989898</phonenumber></customer> 
</return> 
</ns1:GetCustomerInfoResponse> 
</SOAP-ENV:Body></SOAP-ENV:Envelope> 

Maintenant, le problème est lors de l'analyse des données XML, l'analyseur ne va que jusqu'à étiquette de retour. Et puis il est coincé là. Ça ne va pas plus loin. Alors, qu'est-ce que je fais? Quelqu'un veut-il m'aider?

Répondre

1

Quel analyseur utilisez-vous? Sur l'iPhone, vous pouvez utiliser différents parseurs (par exemple: TouchXML ou TinyXML), essayez d'utiliser ... ils

Je pense aussi que vous retirer <?xml version="1.0" encoding="utf-8"?> de l'étiquette « retour » ou la remplacer par une autre balise. Puis, au besoin, faites la transformation inverse.

+0

J'utilise le NSXMLParser. celui dans le xcode. – Jayshree

+0

hey thnx. c'était juste le problème. cela a fonctionné une fois que j'ai enlevé cette étiquette de la réponse. – Jayshree