讀取XML文件的方式

xml(可擴展標記語言)在網絡開發中常常用到,也是各類數據交換的標準,在web程序中應用愈來愈普遍,能夠經過xml來實現配置管理、傳遞對象和數據等。在asp.net中讀取一個xml文件主要有如下幾種方式:利用xml控件,使用Dom技術。使用xmltextreader類,或者利用dataset對象。首先添加命名空間:html

using System.Xml.Linq;
using System.Xml;node

  1. 使用xml控件讀取xml文件

默認主頁源代碼:web

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="xml._Default" %>

<!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 runat="server">
    <title>讀取xml文件</title>
</head>
<body>
<h2>利用控件讀取xml文件</h2>
    <form id="form1" runat="server" method ="post">
    <div>
    <asp:Xml ID="Xml1" runat="server" DocumentSource="~/XMLFile1.xml"></asp:Xml>
    </div>
    </form>
</body>
</html>


效果圖:網絡

神舟龍

2.使用Dom技術讀取xml文件asp.net

xmldocument類來讀取xml文件,將整個待讀取的xml文件在內存中經過xml解析器生成Dom。而後經過xml控件的document屬性賦值,或經過節點的相對位置來選擇節點並顯示或處理數據。post

給xml文件控件的document屬性賦值this

public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
           XmlDocument xd=new XmlDocument();
            string xmlpath=Server.MapPath("~/XMLFile1.xml");
            xd.Load(@xmlpath);
            this.Xml1.Document = xd;

xmldocument類能夠經過節點的childnodes屬性來獲取全部子節點,而每一個子節點又能夠經過xmlnode類來表示。spa

代碼:.net

protected void Page_Load(object sender, EventArgs e)
        {
            XmlNode node;
           XmlDocument xd=new XmlDocument();//定義一個xmldocument對象            string xmlpath=Server.MapPath("~/XMLFile1.xml");//加載xml文件 
            xd.Load(@xmlpath);
            XmlElement tree = xd.DocumentElement;
            for (int i = 0; i < tree.ChildNodes.Count; i++)//對根子節點的全部子節點進行循環             {
                node=tree.ChildNodes[i];
                if (node.HasChildNodes)//判斷是否還有子節點 
                {
                    string content = " ";
                    for (int j = 0; j < node.ChildNodes.Count; j++)
                    {
                        XmlNode childnode = node.ChildNodes[j];
                        content += childnode.Name + childnode.InnerText + "&nbsp;&nbsp;";
                    }
                }
                Content+="</br>";
                Response.Write(Content);//輸出             }
        }

3.經過xmltextreader類來讀取xml文檔,如今設計頁面拖放一個table控件設計

實例代碼:

protected void Page_Load(object sender, EventArgs e)
        {
           
            string xmlpath=Server.MapPath("~/XMLFile1.xml");//定義xml對象 
            XmlTextReader xtr=new XmlTextReader (@xmlpath );//聲明一個xmltextreader對象xtr             TableRow tr=new TableRow ();
            while (xtr.Read())//調用xml文件的讀方法             {
                if (xtr.NodeType == XmlNodeType.Text)//判斷當前是否爲文本                 {
                    TableCell tc = new TableCell();
                    tc.Text = xtr.Value;
                    tr.Cells.Add(tc);
                }
                if (xtr.NodeType == XmlNodeType.EndElement && xtr.Name == "student")//判斷當前是否爲student節點結束標記,如果,則將前面構建的數據行添加表table1.,並初始化對象tr                 {
                    this.Table1.Rows.Add(tr);
                    tr = new TableRow();
                }
          
            }
            xtr.Close();
        }

效果圖:
效果

4.在讀取xml文檔時,能夠藉助dataset做爲中間橋樑,將xml文檔讀入到數據集中,而後經過數據表操做方法對xml包含的數據進行處理,下列程序是讀取xml文檔學號>002的信息

代碼:

protected void Page_Load(object sender, EventArgs e)
        {
           
            string xmlpath=Server.MapPath("~/XMLFile1.xml");//定義xml對象             DataSet ds = new DataSet();//建立數據集對象             ds.ReadXml(@xmlpath);//利用readxml方法讀取xml文件             DataView dv=ds.Tables[0].DefaultView;//定義數據視圖對象             dv.RowFilter = "學號>=002";//根據條件篩選             this.GridView1.DataSource = dv;//在空間gridview中顯示             this.GridView1.DataBind();
        }

效果圖:

表

相關文章
相關標籤/搜索