2013-05-14 3 views
0

Я отправляю SOAP-запрос на сервер и получаю следующий ответ. Я разбираю ответ, используя DDXMLParser. Однако анализатор интерпретирует это как недопустимый XML. Я уверен, что данные внутри тега <return> должны быть обернуты в блоки [!CDATA]. При разборе с использованием NSXML Parser я получаю NSXMLParser Error Domain 64. Я не уверен, как действовать дальше.Как разобрать ответ SOAP, содержащий XML-документ внутри тега ответа

<?xml version="1.0" encoding="utf-8"?> 
    <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> 
     <soapenv:Body> 
      <return> 
      <?xml version="1.0"?> 
      <catalog> 
       <book id="bk101"> 
       <author>Gambardella, Matthew</author> 
       <title>XML Developer's Guide</title> 
       <genre>Computer</genre> 
       <price>44.95</price> 
       <publish_date>2000-10-01</publish_date> 
       <description>An in-depth look at creating applications 
      with XML.</description> 
       </book> 
       <book id="bk102"> 
       <author>Ralls, Kim</author> 
       <title>Midnight Rain</title> 
       <genre>Fantasy</genre> 
       <price>5.95</price> 
       <publish_date>2000-12-16</publish_date> 
       <description>A former architect battles corporate zombies, 
      an evil sorceress, and her own childhood to become queen 
      of the world.</description> 
       </book> 
      </catalog> 
      </return> 
     </soapenv:Body> 
    </soapenv:Envelope> 

ответ

1

Любой документ может иметь только одно объявление XML и должен находиться в самом начале документа.

Парсер увидит это как вложение документов или неправильное размещение объявления XML, оба из которых вызовут ошибку.

**<?xml version="1.0" encoding="utf-8"?>** 
    <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> 
     <soapenv:Body> 
      <return> 
      **<?xml version="1.0"?>** 
      <catalog> 
Смежные вопросы