从 VB.NET Web 服务中的 SOAP 响应中删除 xmlns=“”

Delete xmlns="" from SOAP response in a VB.NET Web Service

提问人:Diego Morales 提问时间:9/26/2023 更新时间:9/26/2023 访问量:27

问:

我目前在使用 vb.net 制作的 Web 服务中工作。问题是我为 WS 响应返回一个 xml 文档,如下所示: WS 响应(注意 mensaje xml 标签)

但是当我从 soapUI 或 Postman 调用此服务时,答案是这样的: Soap WS 响应

它添加了一个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=“” 并将其删除。没有结果。

XML vb.net Web 服务 SOAP 命名空间

评论

0赞 Mads Hansen 9/26/2023
你为什么在乎它有没有?你只是觉得它看起来很丑,还是你希望内容在 sebipagos.bi.com.gt/Consultar 命名空间中,还是什么?xmlns=""

答:

0赞 Mads Hansen 9/26/2023 #1

该元素绑定到命名空间,并且未使用命名空间前缀。任何没有命名空间前缀的后代元素都将位于 http://sebipagos.bi.com.gt/Consultar 命名空间中。因此,它需要指示没有与元素(及其后代)关联的命名空间,并且它们未绑定到 http://sebipagos.bi.com.gt/Consultar 命名空间。ConsultarResponsexmlns=""mensaje

如果你不想看到元素,那么你要么需要使用命名空间前缀,要么不绑定到命名空间。xmlns=""mensajeConsultartResponse