博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读取XML文件的方式
阅读量:6865 次
发布时间:2019-06-26

本文共 3346 字,大约阅读时间需要 11 分钟。

hot3.png

xml(可扩展标记语言)在网络开发中经常用到,也是各种数据交换的标准,在web程序中应用越来越广泛,可以通过xml来实现配置管理、传递对象和数据等。在asp.net中读取一个xml文件主要有以下几种方式:利用xml控件,使用Dom技术。使用xmltextreader类,或者利用dataset对象。首先添加命名空间:

using System.Xml.Linq;

using System.Xml;

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

默认主页源代码:

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

利用控件读取xml文件

效果图:

2.使用Dom技术读取xml文件

xmldocument类来读取xml文件,将整个待读取的xml文件在内存中通过xml解析器生成Dom。然后通过xml控件的document属性赋值,或通过节点的相对位置来选择节点并显示或处理数据。

给xml文件控件的document属性赋值

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类来表示。

代码:

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 + "  ";                    }                }                Content+="
"; 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();        }

效果图:

作者:
出处:

转载于:https://my.oschina.net/u/225383/blog/50492

你可能感兴趣的文章