Solved

All I want is to retrieve 3 values from an XML return from a web service

Posted on 2007-11-28
2
191 Views
Last Modified: 2012-08-14
All I need to get from this return is
messages/resultCode,
messages/message/text
ARBCreateSubscriptionResponse/subscriptionId

I can parse using substring but this is (supposedly)  the hard way. How do I use XmlDocument to grab JUST those values?

Ive tried
Dim sMsgList As XmlNodeList = oXMLDoc.GetElementsByTagName("messages"),
and I get an invalid characters error ...

I've tried stepping through child nodes (but I can't seem to get to 'messages/message/text ')

so after 5 hours of trying different things with mixed results, I asking the experts. PLEASE do not send me to links; I googled 'parse xmldocument +VB.net' and 'read xmldocument +VB.net' and other iterations of search and have looked at about 30 of them.


<?xml version="1.0" encoding="utf-8"?>

<ARBCreateSubscriptionResponse xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">

  <refId>Sample</refId>

  <messages>

    <resultCode>Ok</resultCode>

    <message>

      <code>I00001</code>

      <text>Successful.</text>

    </message>

  </messages>

  <subscriptionId>100748</subscriptionId>

</ARBCreateSubscriptionResponse>

Open in new window

0
Comment
Question by:LyndaPostal
2 Comments
 
LVL 38

Accepted Solution

by:
PaulHews earned 500 total points
ID: 20367703
Sample code:  It's complicated a bit by the default namespace.
Imports System.Xml
 

Public Class Form1
 
 

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Dim xmlDoc As New XmlDocument

        xmlDoc.Load("C:\temp\test.xml")

        xmlDoc.PreserveWhitespace = True
 

        Dim nsMgr As New XmlNamespaceManager(xmlDoc.NameTable)

        nsMgr.AddNamespace("ns", "AnetApi/xml/v1/schema/AnetApiSchema.xsd")
 

        Dim Path() As String = {"messages/resultCode", "messages/message/text", "subscriptionId"}

        For i As Integer = 0 To Path.GetUpperBound(0)

            Dim node As XmlNode = xmlDoc.DocumentElement.SelectSingleNode("//ns:" & Path(i).Replace("/", "/ns:"), nsMgr)

            If Not node Is Nothing Then

                Debug.WriteLine(node.InnerText)

            End If

        Next

    End Sub

End Class

Open in new window

0
 

Author Closing Comment

by:LyndaPostal
ID: 31411486
and I thank you so much. It works perfectly! So I can understand what you did and why it worked: ... Where can I find out more about 'default namespace' and XML? So many (maybe all??) web service returns use them? A link would be great.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my asp.net applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

24 Experts available now in Live!

Get 1:1 Help Now