zoukankan      html  css  js  c++  java
  • 读取xml文件的方式(29)

    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" %>

    <!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文件

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

    效果图:

    表

  • 相关阅读:
    B2. Cat Party (Hard Edition)
    Dubbo集群容错
    Dubbo负载均衡
    Dubbo多协议支持
    Dubbo服务分组
    Dubbo多版本控制
    Dubbo管控平台
    Dubbo应用到web工程
    Dubbo使用Zookeeper注册中心
    Dubbo直连方式
  • 原文地址:https://www.cnblogs.com/shenzhoulong/p/1758676.html
Copyright © 2011-2022 走看看