Member 13967103 Ответов: 0

Vb.net чтение ответа SOAP с помощью CDATA


Привет,

Я использую некоторые веб-сервисы в своем проекте, и у меня возникли проблемы, когда я попытался получить результат (ответ Soap). Ответ примерно такой:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header/>
<env:Body xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><realizarPeticionPublicacionResponse xmlns="http://mywebserviceURL/v79">
<realizarPeticionPublicacion xmlns="">
<![CDATA[<?xml version="1.0" encoding="ISO-8859-1"?><peticion_publicacionOSBUS_resultado>
<codigo_error>00451</codigo_error>
<descripcion_error>
Error al realizar la validacion del xml contra XMLBean: [error: decimal: Invalid decimal value: unexpected char '44']
</descripcion_error>
</peticion_publicacionOSBUS_resultado>]]>
</realizarPeticionPublicacion>
</realizarPeticionPublicacionResponse>
</env:Body></soapenv:Envelope>


Я хочу прочитать код ошибки (codigo_error) и описание (description_error). Я попробовал приведенный ниже код, но не смог получить содержимое CDATA, а также теги code_error и description.

Кто - нибудь может дать мне подсказку? Я пробовал несколько вещей, но не могу..

Заранее спасибо!
Марга

Что я уже пробовал:

<pre lang="vb">

Dim Response As System.Net.HttpWebResponse
Response = hwrequest.GetResponse
Dim DataStream As Stream
Dim Reader As StreamReader
DataStream = Response.GetResponseStream()
Reader = New StreamReader(DataStream)
Dim SD2Request As String = Reader.ReadToEnd()

Dim xmlDoc As New System.Xml.XmlDocument
xmlDoc.LoadXml(SD2Request)

Dim xmlnsManager As XmlNamespaceManager = New System.Xml.XmlNamespaceManager(xmlDoc.NameTable)
xmlnsManager.AddNamespace("soapenv", "http://schemas.xmlsoap.org/soap/envelope/")
xmlnsManager.AddNamespace("v79", "http://www.ejie.es/webServiceEJB/v79jWar")
xmlnsManager.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance")
xmlnsManager.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema")
xmlnsManager.AddNamespace("si", "http://example.com/SystemIntegration")

Dim node As XmlNode = xmlDoc.SelectSingleNode("/soapenv:Envelope/soapenv:Body/v79:realizarPeticionPublicacionOSBUSResponse/realizarPeticionPublicacionOSBUSResult", xmlnsManager)

Richard Deeming

v79:realizarPeticionPublicacionOSBUSResponse/realizarPeticionPublicacionOSBUSResult

<realizarPeticionPublicacionResponse xmlns="http://mywebserviceURL/v79"><realizarPeticionPublicacion xmlns="">

Имена узлов в образце ответа не совпадают с именами узлов в запросе XPath.

0 Ответов