Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

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

Posted on 2007-11-28
2
Medium Priority
?
209 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 2000 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

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

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…
Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
As many of you are aware about Scanpst.exe utility which is owned by Microsoft itself to repair inaccessible or damaged PST files, but the question is do you really think Scanpst.exe is capable to repair all sorts of PST related corruption issues?
How can you see what you are working on when you want to see it while you to save a copy? Add a "Save As" icon to the Quick Access Toolbar, or QAT. That way, when you save a copy of a query, form, report, or other object you are modifying, you…
Suggested Courses

578 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