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.