Web Services 在VB.NET Web服务中从SOAP响应中删除xmlns="”

8iwquhpp  于 2023-10-24  发布在  .NET
关注(0)|答案(1)|浏览(122)

我目前在一个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="”并删除它。

d4so4syb

d4so4syb1#

ConsultarResponse元素被绑定到一个命名空间,并且没有使用命名空间前缀。任何没有命名空间前缀的后代元素都将在http://sebipagos.bi.com.gt/Consultar命名空间中。所以它需要xmlns=""来指示没有与mensaje元素(及其后代)关联的命名空间,并且它们没有绑定到http://sebipagos.bi.com.gt/Consultar命名空间。
如果你不想在mensaje元素上看到xmlns="",那么你需要让ConsultartResponse使用一个名称空间前缀,或者不绑定到一个名称空间。

相关问题