0

I want to read CoverDtlList in XML Response. i want to store all Premium in a variable on the bases of CoverDesc. I am try with XmlDocument() but not getting output which i want.

Please Help me to resolve this Issue.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <GetQuotResponse xmlns="http://tempuri.org/">
            <GetQuotResult>
                <POL_SYS_ID>30258992</POL_SYS_ID>
                <PROPOSAL_NO>10064/31/23/P/022669</PROPOSAL_NO>
                <VehicleIDV>29100</VehicleIDV>
                <ERROR_DESC>Proposal created successfully......!</ERROR_DESC>
                <ERROR_CODE>0</ERROR_CODE>
                <CoverDtlList>
                    <CoverDtl>
                        <CoverDesc>BASIC OD COVER</CoverDesc>
                        <Premium>487.72</Premium>
                        <Type />
                    </CoverDtl>
                    <CoverDtl>
                        <CoverDesc>OD TOTAL</CoverDesc>
                        <Premium>487.72</Premium>
                        <Type />
                    </CoverDtl>
                    <CoverDtl>
                        <CoverDesc>BASIC TP COVER</CoverDesc>
                        <Premium>752</Premium>
                        <Type />
                    </CoverDtl>
                    <CoverDtl>
                        <CoverDesc>GR36A-PA FOR OWNER DRIVER</CoverDesc>
                        <Premium>315</Premium>
                        <Type>ADD</Type>
                    </CoverDtl>
                    <CoverDtl>
                        <CoverDesc>TP TOTAL</CoverDesc>
                        <Premium>1067</Premium>
                        <Type />
                    </CoverDtl>
                </CoverDtlList>
            </GetQuotResult>
        </GetQuotResponse>
    </soap:Body>
</soap:Envelope>
user692942
  • 16,398
  • 7
  • 76
  • 175
  • Does [How to get element data from Soap Web Response? VB.NET](https://stackoverflow.com/questions/10855732/how-to-get-element-data-from-soap-web-response-vb-net) help? – Andrew Morton Apr 09 '22 at 14:56

1 Answers1

2

You have a namespace issue. Try xml linq :

Imports System
Imports System.Xml
Imports System.Xml.Linq

Module Program
    Const FILENAME As String = "c:\temp\test.xml"
    Sub Main(args As String())
        Dim doc As XDocument = XDocument.Load(FILENAME)
        Dim xCoverDtls As List(Of XElement) = doc.Descendants().Where(Function(x) x.Name.LocalName = "CoverDtl").ToList()
        Dim ns As XNamespace = xCoverDtls.First().GetDefaultNamespace()
        Dim coverDtls As List(Of CoverDtl) = xCoverDtls.Select(Function(x) New CoverDtl() With {
                                                                   .CoverDesc = CType(x.Element(ns + "CoverDesc"), String),
                                                                   .Premium = CType(x.Element(ns + "Premium"), Decimal),
                                                                   .Type = CType(x.Element(ns + "Type"), String)
                                                                   }).ToList()

    End Sub

End Module
Public Class CoverDtl

    Public CoverDesc As String
    Public Premium As Decimal
    Public Type As String
End Class
jdweng
  • 33,250
  • 2
  • 15
  • 20