Finding a Particular Node in an XML Document (VB) : XPath « XML « ASP.Net






Finding a Particular Node in an XML Document (VB)

<%@ Page language="vb" AutoEventWireup="true" %>
<%@ Import Namespace="System.Data" %>
<script language="vb" runat="server">

Protected xmlSource As New System.Xml.XmlDocument()
    
Private Sub LoadButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    Dim xmlDocStream As System.IO.Stream = GetXmlDoc(XmlSourceTextBox.Text)
    If Not (xmlDocStream Is Nothing) Then
    xmlSource.Load(xmlDocStream)
    ResultText.Text = xmlSource.InnerXml
    Else
    ResultText.Text = "Could not resolve the XML document."
    End If
End Sub

Public Shared Function GetXmlDoc(ByVal xmlsource As String) As System.IO.Stream
    Dim stream As System.IO.Stream = Nothing
    If xmlsource.StartsWith("<?xml") Or xmlsource.StartsWith("<schema") Then
    stream = New System.IO.MemoryStream(System.Text.ASCIIEncoding.ASCII.GetBytes(xmlsource))
    Else
    Try
      Dim xmluri As New System.Uri(xmlsource)
      If xmluri.IsFile Then
          stream = New System.IO.FileStream(xmlsource, System.IO.FileMode.Open)
      Else
          Dim request As System.Net.HttpWebRequest = CType(System.Net.WebRequest.Create(xmluri), System.Net.HttpWebRequest)
          Dim response As System.Net.WebResponse = request.GetResponse()
          stream = response.GetResponseStream()
      End If
    Catch e As Exception
    End Try 'not a valid uri
    End If
    Return stream
End Function

Private Sub QueryButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    Dim s as new System.Text.StringBuilder()
    
    If xmlSource Is Nothing Or xmlSource.InnerText = "" Then
    xmlSource.LoadXml(ResultText.Text)
    End If
    Try
    Dim nl As System.Xml.XmlNodeList = xmlSource.SelectNodes(XPathText.Text)
    Dim counter As Integer = 1
    Dim node As System.Xml.XmlNode
    For Each node In nl
      s.Append(Convert.ToString(counter) + "]" + node.InnerText + System.Environment.NewLine)
          
      counter += 1
    Next node
    QueryResult.Text=s.ToString()
    Catch selectNodesError As Exception
      QueryResult.Text = selectNodesError.ToString()
    End Try
End Sub
</script>
<HTML>
  <HEAD>
    <title>Finding a Particular Node in an XML Document</title>
  </HEAD>
  <body>
    <form id="Form1" method="post" runat="server">
      <asp:textbox id="XmlSourceTextBox" runat="server" Width="379px" Height="162px" TextMode="MultiLine"></asp:textbox><br/>
      <asp:button id="LoadButton" runat="server" Text="Load XML Document" OnClick="LoadButton_Click"></asp:button><br/>
      <asp:TextBox id="ResultText" runat="server" Width="379px" Height="194px" TextMode="MultiLine"></asp:TextBox><br/>
      <asp:Button id="QueryButton" runat="server" Text="Query" OnClick="QueryButton_Click"></asp:Button><br/>
      <asp:TextBox id="XPathText" runat="server" Width="379px"></asp:TextBox><br/>
      <asp:TextBox id="QueryResult" runat="server" TextMode="MultiLine" Height="229px" Width="379"></asp:TextBox>
    </form>
  </body>
</HTML>

 








Related examples in the same category

1.Use XPath to read XML document
2.XPathNavigator Selection Example
3.Use XML Path to locate Node and edit its value
4.Use XPathNavigator to create attribute
5.Finding a Particular Node in an XML Document?
6.Using the XPathNavigator for Navigating Xml Documents