2010-06-12 107 views
0

我打電話給webservices。 Web服務以xml格式返回數據。現在問題是xml數據沒有以正確格式接收。代替「<」,「>」它以html形式返回。因此,我將xmldata分配給NsMutableString,並將換碼字符替換爲xml數據的格式。然後我重新分配了NSMutableString到NSData,這樣我就可以解析標籤。但問題是xmlparser停在xml數據所在的位置。我在哪裏替換了標籤。它不會走得更遠。任何人都可以讓我明白髮生了什麼?nsdata到nsstring到nsdata

這是我調用的webservice的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

你使用什麼語法分析器?在iPhone上,你可以使用不同的解析器(如:TouchXMLTinyXML),儘量使用它們...

此外,我想你會刪除「迴歸」標籤<?xml version="1.0" encoding="utf-8"?>或與另一個標籤取代。然後在需要時進行逆向變換。

+0

我正在使用NSXMLParser。在xcode中的一個。 – Jayshree 2010-06-12 06:59:40

+0

hey thnx。那只是問題所在。它工作了一次,我從響應中刪除該標記。 – Jayshree 2010-06-12 07:21:47