Parsing an XML File from a StreamReader

I have an interface that sends data to a web page (GXI.aspx) The XML Sent looks like :

<?xml version = '1.0'?>
<?Label VCAT|RESULT|54|SUCCESS?>
<RESULT xmlns="result.fidelio.1.0" success="SUCCESS">
   <resortId>VCAT</resortId>
   <resultMessage>Successfully updated profile in Opera.</resultMessage>
   <ResultIds>
      <ResultId resultMsgType="PROFILE">
         <pmsId>59020</pmsId>
         <memberNr>SI-A-P-00120</memberNr>
      </ResultId>
   </ResultIds>
</RESULT>

I need a way to...
1)  Retrieve the <?LABEL Data
2)  Get the <ResultId resultMsgType >
3)  From the <ResultId>
        <pmsId>
        <memberNr>

My code is included below.
Imports System.IO
Imports system.xml
 
Partial Class GXI
    Inherits System.Web.UI.Page
    Dim pmsId As String, memberNr As String, resultMsgType As String
    Dim OC As New OperaComplete
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim ER As New GXIErrors
        Page.Response.ContentType = "text/xml"
        '// Read XML posted via HTTP
        '?propertyName=VCAT&messagetype=RESULT&transactionId=50&Status=SUCCESS
        Me.Label1.Text = Request.QueryString("propertyName")
        Me.Label2.Text = Request.QueryString("messageType")
        Me.Label3.Text = Request.QueryString("transactionId")
        Me.Label4.Text = Request.QueryString("Status")
        Dim reader As StreamReader = New StreamReader(Page.Request.InputStream)
        'Dim xmlText As String = reader.ReadToEnd
        Try
            ReadXML(reader)
            If IsNumeric(pmsId) Then
                OC.NewRecord()
                OC.pmsID = CLng(pmsId)
                OC.MemberNr = memberNr
                OC.messageType = resultMsgType
                OC.TransID = CLng(Request.QueryString("transactionId"))
                OC.Save()
            Else
                ER.NewRecord()
                ER.ErrorText = "pmsId=" & pmsId & ", memberNr=" & memberNr & ", ResultMsgType=" & resultMsgType
                ER.ErrorLocation = "PageLoad"
                ER.Save()
            End If
        Catch ex As Exception
 
            ER.NewRecord()
            ER.ErrorText = ex.Message
            ER.ErrorLocation = "PageLaod"
            ER.Save()
        End Try
 
    End Sub
    Private Sub ReadXML(ByVal inReader As StreamReader)
        Try
            Dim m_xmld As XmlDocument
            Dim m_node As XmlNode
            resultMsgType = ""
            pmsId = ""
            memberNr = ""
 
            m_xmld = New XmlDocument()
            m_xmld.Load(inReader)
            m_node = m_xmld.SelectSingleNode("//RESULT/ResultIds/ResultId")
 
            resultMsgType = m_node.Attributes.GetNamedItem("resultMsgType").Value
            pmsId = m_node.ChildNodes.Item("pmsId").InnerText
            memberNr = m_node.ChildNodes.Item("memberNr").InnerText
 
        Catch ex As Exception
            Dim ER As New GXIErrors
            ER.NewRecord()
            ER.ErrorText = ex.Message
            ER.ErrorLocation = "ReadXML"
            ER.Save()
        End Try
    End Sub
End Class

Open in new window

LVL 14
RDWaibelAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

jinalCommented:

Dim str As String = "<?xml version = '1.0'?><?Label VCAT|RESULT|54|SUCCESS?><RESULT xmlns='result.fidelio.1.0' success='SUCCESS'><resortId>VCAT</resortId><resultMessage>Successfully updated profile in Opera.</resultMessage><ResultIds><ResultId resultMsgType='PROFILE'><pmsId>59020</pmsId><memberNr>SI-A-P-00120</memberNr></ResultId></ResultIds></RESULT>"
        Dim doc As New XmlDocument
        doc.LoadXml(str)
        Dim node As XmlNode = doc.ChildNodes(1)  '<?Label VCAT|RESULT|54|SUCCESS?>
        Dim labelnodeval As String = node.InnerText
        Dim nodeResults As XmlNodeList = doc.DocumentElement.GetElementsByTagName("ResultId")
        If nodeResults.Count > 0 Then
            Dim valueofAttribute As String = nodeResults(0).Attributes("resultMsgType").InnerText
            Dim pmsId As String = nodeResults(0).ChildNodes(0).InnerText
            Dim memberNr As String = nodeResults(0).ChildNodes(1).InnerText
        End If

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
RDWaibelAuthor Commented:
BEERS on ME!

Works perfectly!

Thank you SO MUCH!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP.NET

From novice to tech pro — start learning today.