Mega Code Archive

 
Categories / ASP.Net Tutorial / XML
 

Use XPath to query XML data (VB net)

<%@ Page Language="VB" %> <%@ Import Namespace="System.Xml" %> <%@ Import Namespace="System.Xml.XPath" %> <script runat="server">    sub SelectData(Sender as Object, e as EventArgs)       Dim objReader as New XmlTextReader(Server.MapPath("Data.xml"))       Dim objDoc as XPathDocument = new XPathDocument(objReader)       Dim objNav as XPathNavigator = objDoc.CreateNavigator()       try          Dim expr as XPathExpression = objNav.Compile(tbQuery.Text)          Dim mngr as XmlNamespaceManager = new XmlNamespaceManager(objReader.NameTable)          mngr.AddNamespace("","x-schema:books.xdr")          expr.SetContext(mngr)          dim objIterator as XPathNodeIterator = objNav.Select(expr)          While objIterator.MoveNext()             Format(objIterator.Current)          end while       catch ex As Exception          Response.Write(ex.Message)       end try       objReader.Close()    end sub    Private Sub Format(objNav As XPathNavigator)       Dim strValue As String       Dim strName As String       If objNav.HasChildren then          strName = objNav.Name          objNav.MoveToFirstChild()          strValue = objNav.Value       Else           strValue = objNav.Value          strName = objNav.Name       End If       Response.Write("&lt;<b>" & strName & _          "</b>&gt;" & strValue & "<br>")    End Sub </script> <html><body>    <form runat=server>       <asp:Textbox id="tbQuery" runat=server/>       <asp:Button id="btnSubmit" text="Submit"           runat=server OnClick="SelectData"/><BR>    </form> </body></html> File: Data.xml <?xml version="1.0"?> <bookstore>   <book genre="asdf">     <title>asdf</title>     <author>       <first-name>asdf</first-name>       <last-name>asdf</last-name>     </author>     <price>asdf</price>   </book>   <book genre="asdf">     <title>asdf</title>     <author>       <first-name>asdf</first-name>       <last-name>asdf</last-name>     </author>     <price>asdf</price>   </book>   <book genre="asdf">     <title>asdf</title>     <author>       <first-name>asdf</first-name>       <last-name>asdf</last-name>     </author>     <price>asdf</price>   </book> </bookstore>