Получить объект NSString / NSData из жестко закодированных байтов, сохраненных как объект NSString в ответе веб-службы - PullRequest
1 голос
/ 04 марта 2010

Я работаю с iPhone SDK и должен обработать ответ веб-службы, полученный от внешней службы.

  1. Данные ответа состоят из строки XML, которая была закодирована в UTF8 в байтовый массив.

  2. Этот байтовый массив преобразуется в строку

  3. Эта строка помещается в элемент оболочки XML

  4. Оболочка возвращается через ответ HTTP

Поэтому мне нужно знать, как преобразовать данные ответа обратно в строку XML, которой они были раньше. К сожалению, я не могу изменить способ создания своего ответа, поэтому мне нужно как-то с этим справиться.

Пример необработанных данных, которые я получаю от веб-службы:

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body><ExportBytesResponse xmlns="http://knowledgepark-ag.com/webservices/">
    <ExportBytesResult>PERhdGE+PFJlY29yZCBEQj0iOTk5OTQiIEtleT0iMjA1Mjc0Ij48U2luZ2xlIEl0ZW1JZD0iQVJCUEFLRVQiIFZhbHVlPSIyOTAiIC8+PFNpbmdsZSBJdGVtSWQ9IkhET0tOUiIgVmFsdWU9IjIwNTI3NCIgLz48U2luZ2xlIEl0ZW1JZD0iVkVSQSIgVmFsdWU9IjEuNzEuMzIxMy4xNzU3NyIgLz48U2luZ2xlIEl0ZW1JZD0iRElTIiBWYWx1ZT0iR2VNLCBNw6RyIDEwIDIwMDggIDU6NDFQTTomI3hEO1ouenQuIGV4aXNpdGVydCBrZWluZSBNw7ZnbGljaGtlaXQgZGFzIEJlZW5kZW4gZWluZXMgTW9kdWxzIGR1cmNoIEFiYnJlY2hlbiBvZGVyIEhhcmQtQ2xvc2UtWCB6dSBlcmZhaHJlbi4gQW4gZGllc2VyIFN0ZWxsZSBtw7xzc3RlbiBtZWlzdCBVc2VydmFycyBkZXMgTW9kdWxzIGdlbMO2c2NodCB3ZXJkZW4uIE9kZXIgYW5kZXJlIEF1ZnLDpHVtYWt0aW9uIGR1cmNoZ2Vmw7xocnQgd2VyZGVuLiYjeEE7RUxLRUcgMDYuMDguMjAwOCAwOToyMToxNyYjeEE7JiN4QTsgQmVpc3BpZWxhdWZiYXUgOiYjeEQ7JiN4QTsmbHQ7Q2xv</ExportBytesResult>
</ExportBytesResponse></s:Body>

Как мне вернуть мое старое представление строки XML, скрытое внутри этих необработанных байтов?

Любая помощь высоко ценится, сейчас я чувствую себя просто глупо из-за невозможности найти решение.

С наилучшими пожеланиями, David

1 Ответ

1 голос
/ 04 марта 2010

ExportBytesResponse имеет кодировку Base64, поэтому сначала необходимо декодировать этот узел, используя что-то вроде .

Это даст вам строку NSString, содержащую XML. Затем вы можете использовать NSXMLParser для анализа ваших данных.

...