0

Web サービスを呼び出しています。Web サービスは、データを xml 形式で返します。問題は、xml データが適切な形式で受信されていないことです。「<」、「>」の代わりに、html 形式で返されます。

そこで、xmldata を NsMutableString に割り当て、エスケープ文字を置き換えて、xml データの形式が適切になるようにしました。次に、タグを解析できるように、NSMutableString を NSData に再割り当てしました。しかし、問題は、xmlparser が xml データがある場所、つまりタグを置き換えた場所で停止することです。それ以上進まない。何が起こっている?

これは、私が呼び出した Web サービスからの 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 データの解析中に、パーサーがタグを返すだけになることです。そして、それはそこで立ち往生しています。

4

1 に答える 1

1

どのパーサーを使用しますか?iPhoneでは、さまざまなパーサー(TouchXMLまたはTinyXMLなど)を使用できます。それらを使用してみてください...

<?xml version="1.0" encoding="utf-8"?> また、「return」タグから削除するか、別のタグに置き換えると思います。次に、必要に応じて逆変換を行います。

于 2010-06-12T06:27:30.403 に答える