This tutorial will show you how to navigate XML information items in ASP.NET 2.0 using VB.NET.The System.Xml.XPath namespace contains the classes that define a
cursor model for navigating and editing XML information items as
instances of the XPath 2.0 Data Model.
Navigating XML information items using ASP.NET and VB
This tutorial will show you how to navigate XML information items in ASP.NET 2.0 using VB.NET.
First, import the namespace of System.XML and System.XML.XPath
The System.Xml.XPath namespace contains the classes that define a
cursor model for navigating and editing XML information items as
instances of the XPath 2.0 Data Model. In this sample, we will use the
classes of XPathDocument, XPathNavigator, XPathExpression and
XPathNodeIterator under this namespace .
Imports System.Xml
Imports System.Xml.XPath
Imports System.Data |
We are using Server Intellect and have found that by far, they are the most friendly, responsive, and knowledgeable support team we've ever dealt with!
The Button1_Click event is to perform the navgating XML infomration
items fuction. The results will be displayed in the textbox. There are
4 classes we applied.
XPathDocument: Provides a fast, read-only, in-memory representation of an XML document using the XPath data model.
XPathNavigator: Provides a cursor model for navigating XML data.
XPathExpression: Provides a typed class that represents a compiled XPath expression.
XPathNodeIterator: Provides an iterator over a selected set of nodes.
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim doc = New XPathDocument(Server.MapPath("Demo.xml"))
Dim nav = doc.CreateNavigator()
Dim xpathExpress = nav.Compile("//bk:Book[position()" + Me.ddownlist.SelectedValue.Trim() + Me.txtNum.Text.Trim() + "]")
'use AddNamespace
Dim xmlManager = New XmlNamespaceManager(nav.NameTable)
xmlManager.AddNamespace("bk", "http://myserver/myschemas/Books")
xpathExpress.SetContext(xmlManager)
Dim xIterator = nav.Select(xpathExpress)
Me.TextBox1.Text = ""
Me.TextBox1.ForeColor = System.Drawing.Color.Empty
Do While xIterator.MoveNext()
Me.TextBox1.Text = Me.TextBox1.Text + ControlChars.CrLf + xIterator.Current.Value
Loop
If (xIterator.Count.Equals(0)) Then
Me.TextBox1.Text = "There is no xml data in the condition."
Me.TextBox1.ForeColor = System.Drawing.Color.Red
End If
End Sub |
We migrated our web sites to Server Intellect
over one weekend and the setup was so smooth that we were up and
running right away. They assisted us with everything we needed to do
for all of our applications. With Server Intellect's help, we were able to avoid any headaches!
The contents of Demo.xml:
Just XML
Professional XML
XML Step by Step
XML By Example
|
The front end Default.aspx page looks something like this:
Select xml data with XPath
Font-Size="Smaller" ForeColor="#333333" GridLines="None" RowHeaderColumn="Title"
Width="205px">
ID="ddownlist" runat="server">
<
<=
>
>=
2
ErrorMessage="Please input integer number.">
|
Try Server Intellect for Windows Server Hosting. Quality and Quantity!
The flow for the code behind page as follows.
Imports System.Xml
Imports System.Xml.XPath
Imports System.Data
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim doc = New XPathDocument(Server.MapPath("Demo.xml"))
Dim nav = doc.CreateNavigator()
Dim xpathExpress = nav.Compile("//bk:Book[position()" + Me.ddownlist.SelectedValue.Trim() + Me.txtNum.Text.Trim() + "]")
'use AddNamespace
Dim xmlManager = New XmlNamespaceManager(nav.NameTable)
xmlManager.AddNamespace("bk", "http://myserver/myschemas/Books")
xpathExpress.SetContext(xmlManager)
Dim xIterator = nav.Select(xpathExpress)
Me.TextBox1.Text = ""
Me.TextBox1.ForeColor = System.Drawing.Color.Empty
Do While xIterator.MoveNext()
Me.TextBox1.Text = Me.TextBox1.Text + ControlChars.CrLf + xIterator.Current.Value
Loop
If (xIterator.Count.Equals(0)) Then
Me.TextBox1.Text = "There is no xml data in the condition."
Me.TextBox1.ForeColor = System.Drawing.Color.Red
End If
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim myDs = New DataSet()
myDs.ReadXml(Server.MapPath("Demo.xml"))
Me.GridView1.DataSource = myDs
Me.GridView1.DataBind()
End If
End Sub
End Class |
|