我目前在一个Web服务,这是与vb.net的工作。问题是,我返回一个xml documento的WS响应像这样:WS Response(注意mensajexml标记)
但当我从soapUI或Postman调用此服务时,答案如下:Soap WS Response
它添加了一个xmlsn="”,我需要删除它,但我不知道如何删除。下面是我的代码:
' Load and extract data from the input XML
oXMLDocument.LoadXml(Input)
sConvenio = GetSetNodeValue(oXMLDocument, "mensaje/encabezado/convenio", "", Nothing)
siden01 = Trim(GetSetNodeValue(oXMLDocument, "mensaje/identificador/iden01", "", Nothing))
' Check the length of a string
If Strings.Len(ConectaCompania(sConvenio)) = 36 Then
' Construct a SOAP request
sTemp = "<!-- Query -->"
sQuery = "<!-- SOAP request construction code -->"
' Send the SOAP request and receive a response
sSOAPans = DISnode.Interact(sQuery)
oXMLDoc.LoadXml(sSOAPans)
' Process the SOAP response and set values in the response XML
If xmlNL.Count = 0 And oXMLDoc.InnerText <> "oRecordset0.00000000" Then
' Extract and set response tags
GetSetNodeValue(oXMLDocument, "mensaje/encabezado/codigoRetorno", "000", Nothing)
GetSetNodeValue(oXMLDocument, "mensaje/encabezado/mensajeRetorno", "CONSULTA EXITOSA", Nothing)
' Extract and set identifier and value tags (repeat for others)
GetSetNodeValue(oXMLDocument, "mensaje/identificador/iden01", siden01, Nothing)
' ...
' Return the modified XML document
Return oXMLDocument
End If
End If
正如你所看到的,我没有添加xmlns="“,所以这是由soap响应添加的。我如何防止这种情况发生?
谢谢你,谢谢!
我尝试返回一个XNode对象而不是XmlDocument,并在标签中搜索xmlns="”并删除它。
1条答案
按热度按时间d4so4syb1#
ConsultarResponse
元素被绑定到一个命名空间,并且没有使用命名空间前缀。任何没有命名空间前缀的后代元素都将在http://sebipagos.bi.com.gt/Consultar命名空间中。所以它需要xmlns=""
来指示没有与mensaje
元素(及其后代)关联的命名空间,并且它们没有绑定到http://sebipagos.bi.com.gt/Consultar命名空间。如果你不想在
mensaje
元素上看到xmlns=""
,那么你需要让ConsultartResponse
使用一个名称空间前缀,或者不绑定到一个名称空间。