Solved

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

Posted on 2007-11-28
2
188 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
Comment Utility
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
Comment Utility
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

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

I recently went through the process of creating a Calendar Control of events with the basis of using a database to keep track of the dates that are selectable, one requirement was to have the selected date pop-up in a simple lightbox.  At first this…
Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…

743 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

14 Experts available now in Live!

Get 1:1 Help Now