другой ответ исходит от веб-сервера .net с использованием NSUrlrequest

Я получаю данные с веб-сервера .net следующим образом.

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GenericAndroidMethodResponse xmlns="Mortgage"><GenericAndroidMethodResult>&lt;NewDataSet&gt;
  &lt;Table&gt;
    &lt;LoanOfficerID&gt;3581&lt;/LoanOfficerID&gt;
    &lt;FirstName&gt;Venkat&lt;/FirstName&gt;
    &lt;LastName&gt;Sreenu&lt;/LastName&gt;
    &lt;Address1&gt;d&lt;/Address1&gt;
    &lt;City&gt;d&lt;/City&gt;
    &lt;State&gt;Alabama&lt;/State&gt;
    &lt;WorkPhone&gt;19999999999&lt;/WorkPhone&gt;
    &lt;Country&gt;United States&lt;/Country&gt;
    &lt;EmailAddress&gt;[email protected]&lt;/EmailAddress&gt;
    &lt;companyName&gt;ensisinfo&lt;/companyName&gt;
    &lt;CompanyURL&gt;www.ensisinfo.com&lt;/CompanyURL&gt;
  &lt;/Table&gt;
&lt;/NewDataSet&gt;</GenericAndroidMethodResult></GenericAndroidMethodResponse></soap:Body></soap:Envelope>  

Но я тестирую в браузере, передавая параметры xml и имя метода, которое я получаю так.

<NewDataSet> <Table> <LoanOfficerID>3581</LoanOfficerID> <FirstName>Venkat</FirstName> <LastName>Sreenu</LastName> <Address1>d</Address1> <City>d</City> <State>Alabama</State> <WorkPhone>19999999999</WorkPhone> <Country>United States</Country> <EmailAddress>[email protected]</EmailAddress> <companyName>ensisinfo</companyName> <CompanyURL>www.ensisinfo.com</CompanyURL> </Table> </NewDataSet>

Я использую NSUrlRequest

NSURL * url = [NSURL URLWithString: @ "http://173.31.193.92/MobileGenericWebservice/GenericWebService.asmx"]; NSMutableURLRequest * theRequest = [NSMutableURLRequest requestWithURL: url]; NSString * msgLength = [NSString stringWithFormat: @ "% d", [длина мыльного сообщения]];

[theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue: @"Mortgage/GenericAndroidMethod" forHTTPHeaderField:@"SOAPAction"];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];

почему я так получаю.

Может кто-нибудь мне помочь.


person Mahesh Babu    schedule 24.02.2011    source источник


Ответы (2)


В XML видны все эти &lt; и другие коды, как в вашем примере?
Если они видны, то весь элемент просто анализируется как одна гигантская строка, которая находится в узле <GenericAndroidMethodResult>.

person Walter    schedule 24.02.2011
comment
тогда как я могу решить эту проблему, мне нужен индивидуальный, как я могу преобразовать эти & lt в ‹ - person Mahesh Babu; 24.02.2011
comment
Существует метод NSString stringByReplacingOccurencesofString, который позволяет изменять символы. Вы можете написать функцию, которая перебирает строку и исправляет ее. Затем вы можете проанализировать эту строку. Или вы можете просто просканировать строку и извлечь нужные данные. - person Walter; 24.02.2011
comment
Я пробую stringByReplacingOccurencesofString, но без изменений - person Mahesh Babu; 25.02.2011
comment
Итак, вы выполнили stringByReplacingOccureencesOfString как для LT, так и для GT, ДО того, как подать строку в синтаксический анализатор? В этот момент я бы сказал, что вам нужно просто просканировать строку и выбрать свои части или заставить сервер выдать вам правильно сформированный XML. Настоящая проблема заключается в том, что вы не получаете хорошего XML для начала. - person Walter; 25.02.2011

Скажите своему .NET-специалисту, чтобы он это исправил. Вы получаете недействительный XML.

person Vaibhav Tekam    schedule 24.02.2011