Mega Code Archive

 
Categories / ASP.Net Tutorial / XML
 

XPath Navigator Read

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"  Inherits="XPathNavigatorRead" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">     <title>Untitled Page</title> </head> <body>     <form id="form1" runat="server">     <div>     <asp:Literal id="XmlText" runat="server"></asp:Literal>     </div>     </form> </body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Xml; using System.Xml.XPath; using System.Text; public partial class XPathNavigatorRead : System.Web.UI.Page {     protected void Page_Load(object sender, EventArgs e)     {     string xmlFile = Server.MapPath("Data.xml");     XmlDocument doc = new XmlDocument();     doc.Load(xmlFile);     XPathNavigator xnav = doc.CreateNavigator();     XmlText.Text = GetXNavDescr(xnav, 0);     }   private string GetXNavDescr(XPathNavigator xnav, int level)   {     string indent = "";     for (int i = 0; i < level; i++)       indent += "&nbsp; &nbsp; &nbsp;";     StringBuilder str = new StringBuilder("");     switch (xnav.NodeType)     {       case XPathNodeType.Root:         str.Append("<b>ROOT</b>");         str.Append("<br>");         break;       case XPathNodeType.Element:         str.Append(indent);         str.Append("Element: <b>");         str.Append(xnav.Name);         str.Append("</b><br>");         break;       case XPathNodeType.Text:         str.Append(indent);         str.Append(" - Value: <b>");         str.Append(xnav.Value);         str.Append("</b><br>");         break;       case XPathNodeType.Comment:         str.Append(indent);         str.Append("Comment: <b>");         str.Append(xnav.Value);         str.Append("</b><br>");         break;     }     if (xnav.HasAttributes)     {       xnav.MoveToFirstAttribute();       do       {         str.Append(indent);         str.Append(" - Attribute: <b>");         str.Append(xnav.Name);         str.Append("</b> Value: <b>");         str.Append(xnav.Value);         str.Append("</b><br>");       } while (xnav.MoveToNextAttribute());       xnav.MoveToParent();     }     if (xnav.HasChildren)     {       xnav.MoveToFirstChild();       do       {         str.Append(GetXNavDescr(xnav, level + 1));       } while (xnav.MoveToNext());       xnav.MoveToParent();     }     return str.ToString();   } } File: Data.xml <?xml version="1.0"?> <DvdList>    <DVD ID="1" Category="Category 1">       <Title>title 1</Title>       <Director>directory 2</Director>       <Price>1</Price>       <Starring>          <Star>star 1</Star>          <Star>star 2</Star>       </Starring>    </DVD>    <DVD ID="2" Category="Category 2">       <Title>title 2</Title>       <Director>directory 2</Director>       <Price>2</Price>       <Starring>          <Star>star 3</Star>          <Star>star 4</Star>       </Starring>    </DVD> </DvdList>