天天看點

ASP.NET中讀取XML檔案4種方法

一共有四種方法,建立一個asp.net項目,下面有四個頁面,如下圖所示:

ASP.NET中讀取XML檔案4種方法

data7.xml内容如下所示:

<?xml version="1.0" encoding="utf-8"?>  

<Advertisements>  

  <Ad>  

    <ImageUrl>001.jpg</ImageUrl>  

    <NavigateUrl>001.aspx</NavigateUrl>  

    <Impressions>10</Impressions>  

    <Keyword>gucas01</Keyword>  

  </Ad>  

    <ImageUrl>002.jpg</ImageUrl>  

    <NavigateUrl>002.aspx</NavigateUrl>  

    <Impressions>20</Impressions>  

    <Keyword>gucas02</Keyword>  

    <ImageUrl>003.jpg</ImageUrl>  

    <NavigateUrl>003.aspx</NavigateUrl>  

    <Impressions>30</Impressions>  

    <Keyword>gucas03</Keyword>  

    <ImageUrl>004.jpg</ImageUrl>  

    <NavigateUrl>004.aspx</NavigateUrl>  

    <Impressions>40</Impressions>  

    <Keyword>gucas04</Keyword>  

    <ImageUrl>005.jpg</ImageUrl>  

    <NavigateUrl>005.aspx</NavigateUrl>  

    <Impressions>50</Impressions>  

    <Keyword>gucas05</Keyword>  

    <ImageUrl>google.gif</ImageUrl>  

    <NavigateUrl>http://www.google.com</NavigateUrl>  

    <Keyword>google</Keyword>  

</Advertisements>  

Default.aspx代碼如下:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_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></title>  

</head>  

<body>  

<h3><font face="Verdana">讀取XML方法一:使用XML控件</font></h3>  

    <form id="form1" runat="server">  

    <div>  

     <asp:Xml id="xml1" DocumentSource="data7.xml" runat="server" />  

    </div>  

    </form>  

</body>  

</html>  

Default.aspx.cs不做修改。

釋出結果如下圖所示:

ASP.NET中讀取XML檔案4種方法

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>  

<h3><font face="Verdana">讀取XML方法二:使用DOM技術</font></h3>  

    <asp:Xml id="xml1"  runat="server" />  

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.Xml;  

public partial class Default2 : System.Web.UI.Page  

{  

    protected void Page_Load(object sender, EventArgs e)  

    {  

        XmlDocument doc = new XmlDocument();  

        doc.Load(Server.MapPath("data7.xml"));  

        xml1.Document = doc;  

    }  

}  

釋出結果如下所示:

ASP.NET中讀取XML檔案4種方法

 <h3><font face="Verdana">讀取XML方法三:使用DataSet對象</font></h3>  

    <asp:DataGrid id="dgEmployees" runat="server" />  

public partial class Default3 : System.Web.UI.Page  

    {      

        DataSet objDataSet = new DataSet();  

        objDataSet.ReadXml(Server.MapPath("data7.xml"));  

        //方法1  

        //dgEmployees.DataSource = objDataSet;  

        //dgEmployees.DataBind();  

        //方法2  

        dgEmployees.DataSource = objDataSet.Tables["Ad"].DefaultView;  

        dgEmployees.DataBind();  

ASP.NET中讀取XML檔案4種方法

   <h3><font face="Verdana">讀取XML方法四:按文本方式讀取</font></h3>  

    <asp:label id="LblFile"  runat="server" />  

public partial class Default4 : System.Web.UI.Page  

        XmlTextReader objXMLReader = new XmlTextReader(Server.MapPath("web.config"));  

        string strNodeResult = "";  

        XmlNodeType objNodeType;  

        while (objXMLReader.Read())  

        {  

            objNodeType = objXMLReader.NodeType;  

            switch (objNodeType)  

            {  

                case XmlNodeType.XmlDeclaration:  

                    //讀取XML檔案頭  

                    strNodeResult += "XML Declaration:<b>" + objXMLReader.Name + "" + objXMLReader.Value + "</b><br/>";  

                    break;  

                case XmlNodeType.Element:  

                    //讀取标簽  

                    strNodeResult += "Element:<b>" + objXMLReader.Name + "</b><br/>";  

                case XmlNodeType.Text:  

                    //讀取值  

                    strNodeResult += " -Value:<b>" + objXMLReader.Value + "</b><br/>";  

            }  

            if (objXMLReader.HasAttributes)  

            {  //用循環判斷完所有節點  

                while (objXMLReader.MoveToNextAttribute())  

                { //取标簽和值  

                    strNodeResult += " -Attribute:<b>" + objXMLReader.Name + "</b> value:<b>" + objXMLReader.Value + "</b><br/>";  

                }  

            LblFile.Text = strNodeResult;  

        }  

ASP.NET中讀取XML檔案4種方法

本文轉自xwdreamer部落格園部落格,原文連結:http://www.cnblogs.com/xwdreamer/archive/2011/04/27/2297022.html,如需轉載請自行聯系原作者

繼續閱讀