Saturday, July 13, 2013

Asp.net Read xml node values and bind data to gridview

SampleXML.xml
----------------
<?xml version="1.0" encoding="utf-8" ?>
<users>
  <user>
    <FirstName>FName1</FirstName>
    <LastName>LName1</LastName>
    <UserName>Names</UserName>
    <Job>
      <Role>SE</Role>
    </Job>
  </user>
  <user>
    <FirstName>FName1</FirstName>
    <LastName>LName1</LastName>
    <UserName>Names</UserName>
    <Job>
      <Role>SOftware Developer</Role>
    </Job>
  </user>
  <user>
    <FirstName>FName1</FirstName>
    <LastName>LName1</LastName>
    <UserName>Names</UserName>
    <Job>
      <Role>SE</Role>
    </Job>
  </user>
</users>
Default.aspx
------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default8.aspx.cs" Inherits="XML_Default8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Read XML Node values and bind data to gridview</title>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="gvDetails" runat="server">
<HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" />
</asp:GridView>
</form>
</body>
</html>
Default.aspx.cs
------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System;
using System.Data;
using System.Xml;
public partial class XML_Default8 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //Bind Data to Gridview
            GetXMLData();
        }
    }
    // This method is used to get xml node values and bind to gridview
    protected void GetXMLData()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("FirstName", typeof(string));
        dt.Columns.Add("LastName", typeof(string));
        dt.Columns.Add("UserName", typeof(string));
        dt.Columns.Add("Role", typeof(string));
        XmlDocument xmldoc = new XmlDocument();
        xmldoc.Load(Server.MapPath("~/SampleXML.xml"));
        XmlNodeList nodeList = xmldoc.SelectNodes("/users/user");
        foreach (XmlNode node in nodeList)
        {
            DataRow dtrow = dt.NewRow();
            dtrow["FirstName"] = node["FirstName"].InnerText;
            dtrow["LastName"] = node["LastName"].InnerText;
            dtrow["UserName"] = node["UserName"].InnerText;
            dtrow["Role"] = node["Job"]["Role"].InnerText;
            dt.Rows.Add(dtrow);
        }
        gvDetails.DataSource = dt;
        gvDetails.DataBind();
    }
}

How to read and process Xml file element data in asp.net

ITBookStore.xml
-----------------
<?xml version="1.0" encoding="utf-8" ?>
<!-- This is a sample XML file for various XML example-->
<books>
  <book ID="1">
    <name>Adobe Flex 3: Training from the Source</name>
    <author>Jeff Tapper</author>
    <price>47.99</price>
    <type>Flex</type>
    <image>AdobeFlex3.jpeg</image>
  </book>
  <book ID="2">
    <name>Styling Web Pages with CSS</name>
    <author>Tom Negrino</author>
    <price>15.99</price>
    <type>CSS</type>
    <image>CSS.jpeg</image>
  </book>
  <book ID="3">
    <name>Adobe Flash CS4 Professional</name>
    <author>Mark Schaeffer</author>
    <price>19.99</price>
    <type>Flash</type>
    <image>FlashCS4.jpeg</image>
  </book>
</books>
Default.aspx
-----------------
<%@ Page Language="C#" %>  
<%@ Import Namespace="System.Xml" %>  
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  
<script runat="server">  
    protected void Page_Load(object sender, System.EventArgs e)  
    {
        string xmlFile = Request.PhysicalApplicationPath + @"ITBookStore.xml";   //App_Data\ITBookStore.xml
        XmlReaderSettings settings = new XmlReaderSettings();  
        settings.IgnoreComments = true;  
        settings.IgnoreWhitespace = true;  
        try  
        {  
            using (XmlReader reader = XmlReader.Create(xmlFile, settings))  
            {  
                string xmlContent;  
                while (reader.Read())  
                {  
                    if (reader.NodeType == XmlNodeType.Element)  
                    {  
                        xmlContent = "";  
                        if (reader.Name == "name")  
                        {  
                            xmlContent += "Book: " + reader.ReadString().ToString() + "<br />";  
                        }  
                        if (reader.Name == "author")  
                        {  
                            xmlContent += "Author: " + reader.ReadString().ToString() + "<br />";  
                        }  
                        if(reader.Name == "price")  
                        {  
                            xmlContent += "Price: $" + reader.ReadString().ToString() + "<br />";  
                        }  
                        if(reader.Name == "type")  
                        {  
                            xmlContent += "Type: " + reader.ReadString().ToString() + "<br />";  
                        }  
                        if(reader.Name == "image")  
                        {  
                            xmlContent += "Image: " + reader.ReadString().ToString() + "<br /><br />";  
                        }  
                        Label1.Text += xmlContent;  
                    }  
                }  
            }  
        }  
        catch (Exception ex)  
        {  
            Label1.Text = "An Error Occured: " + ex.Message;  
        }  
    }  
</script>  
  
<html xmlns="http://www.w3.org/1999/xhtml" >  
<head id="Head1" runat="server">  
    <title>XmlReader: How to read and process Xml file element data in asp.net</title>  
</head>  
<body>  
    <form id="form1" runat="server">  
    <div>  
        <h2 style="color:Navy; font-style:italic;">XML Example: Reading Xml Element Data</h2>  
        <asp:Label   
             ID="Label1"  
             runat="server"  
             Font-Bold="false"  
             ForeColor="Crimson"  
             Font-Size="Large"  
             Font-Names="Comic Sans MS"  
             >  
        </asp:Label>  
    </div>  
    </form>  
</body>  
</html> 

Tree view style

<%@ page language="VB" %>
<script runat="server">
</script>
<html>
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="Form1" runat="server">
        <asp:treeview id="TreeView1" 
                      runat="server" 
                      font-underline="False" 
                      font-names="Verdana"
                      font-size="8pt" 
                      font-italic="False" 
                      font-bold="False" 
                      imageset="MSDN" 
                      forecolor="#000000"
                      nodeindent="16" 
                      backcolor="#EEEEEE">
            <selectednodestyle verticalpadding="1" 
                               bordercolor="#999999" 
                               horizontalpadding="3"
                               backcolor="#FFFFFF" 
                               font-underline="False" 
                               font-italic="False" 
                               font-bold="False"
                               borderwidth="1px" 
                               borderstyle="Solid">
            </selectednodestyle>
            <hovernodestyle 
                            bordercolor="#999999" 
                            
                            backcolor="#C7C7C7"
                            font-underline="True" 
                            font-italic="False" 
                            font-bold="False" 
                            borderwidth="1px"
                            borderstyle="Solid">
            </hovernodestyle>
            <parentnodestyle font-underline="False" font-italic="False" font-bold="False">
            </parentnodestyle>
            <leafnodestyle font-underline="False" font-italic="False" font-bold="False">
            </leafnodestyle>
            <nodes>
                <asp:treenode checked="True" 
                              value="My Root Element" 
                              expanded="True" 
                              text="My Root Element">
                    <asp:treenode value="My Child Element" text="My Child Element">
                    </asp:treenode>
                    <asp:treenode checked="True" 
                                  value="Another Child" 
                                  expanded="True" 
                                  showcheckbox="False"
                                  selectaction="SelectExpand" 
                                  selected="True" 
                                  text="Another Child">
                        <asp:treenode value="A Childs Child" 
                                      selectaction="None" 
                                      text="A Childs Child">
                        </asp:treenode>
                    </asp:treenode>
                </asp:treenode>
            </nodes>
            <nodestyle forecolor="#000000" 
                       verticalpadding="2" 
                       nodespacing="1" 
                       horizontalpadding="4"
                       font-underline="False" 
                       font-names="Verdana" 
                       font-size="8pt" 
                       font-italic="False"
                       font-bold="False">
            </nodestyle>
            <rootnodestyle font-underline="False" font-italic="False" font-bold="False">
            </rootnodestyle>
        </asp:treeview>&nbsp;
    </form>
</body>
</html>

Complex tree view

File: Data.xml
------------------
<movies>
  <category id="category1" text="Action">
    <movie id="movie1" text="Star Wars" />
    <movie id="movie2" text="Independence Day" />
  </category>
  <category id="category2" text="Horror">
    <movie id="movie3" text="Jaws" />
    <movie id="movie4" text="Nightmare Before Christmas" />
  </category>
</movies>
File: TreeViewXMLComplex.aspx
--------------------------------
<%@ Page Language="C#" %>
<!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 id="Head1" runat="server">
    <title>TreeView XML Complex</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:TreeView
        id="TreeView1"
        DataSourceID="srcMovies"
        Runat="server">
        <DataBindings>
        <asp:TreeNodeBinding
            DataMember="category"
            TextField="text"
            ValueField="id" />
        <asp:TreeNodeBinding
            DataMember="movie"
            TextField="text"
            ValueField="id" />
        </DataBindings>
    </asp:TreeView>
    <asp:XmlDataSource
        id="srcMovies"
        DataFile="~/Data.xml"
        Runat="server" />
    </div>
    </form>
</body>
</html>

Binding to an XML File

File: Data.xml
--------------------
<movies>
  <action>
    <StarWars />
    <IndependenceDay />
  </action>
  <horror>
    <Jaws />
    <NightmareBeforeChristmas />
  </horror>
</movies>
File: TreeViewXml.aspx
-------------------------
<%@ Page Language="C#" %>
<!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 id="Head1" runat="server">
    <title>TreeView XML</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:TreeView
        id="TreeView1"
        DataSourceID="srcMovies"
        Runat="server" />
    <asp:XmlDataSource
        id="srcMovies"
        DataFile="~/Data.xml"
        Runat="server" />
    </div>
    </form>
</body>
</html>

Displaying a Site Map with a TreeView control.

<%@ Page Language="C#" %>
<!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 id="Head1" runat="server">
    <title>TreeView Declare</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:TreeView
        id="TreeView1"
        Runat="server">
        <Nodes>
         <asp:TreeNode
            Text="Home"
            NavigateUrl="~/Default.aspx">
            <asp:TreeNode
                Text="Products">
                <asp:TreeNode
                    Text="First Product"
                    NavigateUrl="~/Products/FirstProduct.aspx" />
                <asp:TreeNode
                    Text="Second Product"
                    NavigateUrl="~/Products/SecondProduct.aspx" />
           </asp:TreeNode>
           <asp:TreeNode
               Text="Services">
               <asp:TreeNode
                   Text="First Service"
                   NavigateUrl="~/Services/FirstService.aspx" />
               <asp:TreeNode
                   Text="Second Service"
                   NavigateUrl="~/Services/SecondService.aspx" />
            </asp:TreeNode>
       
        </asp:TreeNode>
        </Nodes>
    </asp:TreeView>
    </div>
    </form>
</body>
</html>