nsdata к nsstring к nsdata - PullRequest
       27

nsdata к nsstring к nsdata

0 голосов
/ 12 июня 2010

Я звоню на веб-сервисы. Веб-сервис возвращает данные в формате xml. Теперь проблема в том, что данные XML не принимаются в правильном формате. Вместо "<", ">" он возвращается в виде HTML. Поэтому я назначил xmldata для NsMutableString и заменил управляющие символы, чтобы формат данных XML был правильным. Затем я переназначил NSMutableString на NSData, чтобы я мог разобрать теги. но проблема в том, что xmlparser останавливается там, где находятся данные xml. Где я заменил теги. это не идет дальше. Кто-нибудь может заставить меня понять, что происходит ????

Это ответ xml от веб-службы, которую я позвонил.

<?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>

И это после того, как я заменил теги.

<?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>

Теперь проблема в том, что при разборе данных xml анализатор переходит только к возвращаемому тегу. И тогда он застрял там. Это не идет дальше. Так что мне делать? кто-нибудь хочет мне помочь?

1 Ответ

1 голос
/ 12 июня 2010

Какой парсер вы используете? На iPhone вы можете использовать разные парсеры (например: TouchXML или TinyXML ), попробуйте использовать их ...

Также я думаю, что вы удалили бы <?xml version="1.0" encoding="utf-8"?> из тега 'return' или заменили его другим тегом. Затем при необходимости выполните обратное преобразование.

...