读取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();
        }

效果图:

表

相关文章
相关标签/搜索