ASP.net Xml: DataSet的ReadXml(), WriteXml()和Response写Xml文档

简介:

 专题图ylbtech-asp.net-logo编号:ylbtechASPnetXml100010011

1,功能描述

   这是一个基于.net操作Xml的案例示例,共有两个示例。

ylb_menu:1, DemoReadXml (DataSet的ReadXml())

ylb_menu:2, DemoWriteXml(DataSet的WriteXml()和Response写Xml文档)

 

2,技术与环境

操作系统:

windows

开发语言:

C#

开发框架:

 

数据库:

开发软件:

Microsoft Visual Studio 2010

开发技术:

 ASP.net+Xml

课程总策划:

yuanbo

成员:

null

个人主页:

http://www.cnblogs.com/ylbtech/

科研团队:

ylbtech

教研团队:

ylbtech

 

3,ylb_menu:1, DemoReadXml ylb_tip:读Xml文档
 
3_1,/Vote.xml
复制代码
<?xml version="1.0" encoding="utf-8"?>
<vote>
  <item belong="三国演义">
    <id>1</id>
    <name>赵云</name>
    <number>100</number>
  </item>
  <item belong="水浒">
    <id>2</id>
    <name>李逵</name>
    <number>4</number>
  </item>
  <item belong="三国演义">
    <id>3</id>
    <name>诸葛亮</name>
    <number>100</number>
  </item>
</vote>
复制代码
 
3_2,/DemoReadXml.aspx.cs  
复制代码
using System;

using System.Data;
public partial class DemoReadXml : System.Web.UI.Page
{
    /// <summary>
    /// ylb;1, 读取XML文档
    /// </summary>
    private void ReadXml()
    { 
        //创建一个虚拟库
        DataSet ds = new DataSet();
        //加载XML
        ds.ReadXml(Server.MapPath("Vote.xml"));

        //取出表
        DataTable dt = ds.Tables[0];

        //遍历表
        Response.Write("<pre>");
        //循环行
        for (int i = 0; i < dt.Rows.Count; i++)
        { 
            //循环列
            for (int j = 0; j < dt.Columns.Count; j++)
            {
                //输出一列的值
                Response.Write(dt.Rows[i][j]+"\t");
            }
            Response.Write("\n");
        }
        Response.Write("</pre>");


        //把虚拟表给GridView
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        //调用
        ReadXml();
    }
}
复制代码

 

4,ylb_menu:2, DemoWriteXml
 
4_1,DemoWriteXml.aspx.cs ylb_tip:写Xml文档,Response写Xml文档
复制代码
using System;

using System.Data;
using System.Data.SqlClient;
public partial class DemoWriteXml : System.Web.UI.Page
{

    /// <summary>
    /// ylb:1,把数据库中的表写成XML文档
    /// 数据读取器(DataReader)
    /// </summary>
    private void WriteXml()
    {
        string sql = "select top 10 productID,productName,unitPrice from Products";
        //string connStr = "Server=.;Database=Northwind;uid=sa;pwd=m123";
        string connStr = "Server=.;Database=Northwind;Integrated Security=SSPI";

        //创建一个虚拟库
        DataSet ds = new DataSet("Northwind");
        //创建一个虚拟表
        DataTable dt = new DataTable("Products");

        SqlConnection conn = new SqlConnection(connStr);
        SqlCommand com = conn.CreateCommand();

        //把sql赋值给com.CommandText
        com.CommandText = sql;
        //peican

        conn.Open();

        //execute
        try
        {
            SqlDataReader sdr = com.ExecuteReader();

            //向虚拟表中加载数据
            dt.Load(sdr);
        }
        finally
        {
            conn.Close();
        }

        //把表添加到库中 
        ds.Tables.Add(dt);

        //写XML文档
        ds.WriteXml(Server.MapPath("Products.xml"));

        Response.Write("写Xml文档成功!");

    }

    
    /// <summary>
    /// ylb:2,把数据库中的表写成XML文档
    /// 用适配器(DataAdapter)
    /// </summary>
    private void WriteXml2()
    {
        string sql = "select top 10 productID,productName,unitPrice from Products";
        string connStr = "Server=.;Database=Northwind;Integrated Security=SSPI";

        //创建一个虚拟表
        DataSet ds = new DataSet("Northwind");

        SqlDataAdapter sdr = new SqlDataAdapter(sql, connStr);

        //用适配器去填充虚拟库
        sdr.Fill(ds);

        ds.Tables[0].TableName = "Products";    //给表格命名        

        //写XML文档
        ds.WriteXml(Server.MapPath("Products2.xml"));

        Response.Write("写Xml文档成功!");
    }

    /// <summary>
    /// ylb:2,把数据库中的表写成XML文档
    /// 用适配器(DataReader)
    /// </summary>
    private void WriteXml3()
    {
        string connStr = "Server=.;Database=Northwind;Integrated Security=SSPI";
        string sql = "select top 10 productId,productName,unitprice from products";


        SqlConnection conn = new SqlConnection();
        conn.ConnectionString = connStr;

        SqlCommand cmd = conn.CreateCommand();
        cmd.CommandText = sql;

        conn.Open();
        try
        {
            //直接输出Xml文档
            Response.ContentType = "text/xml";  //输出文档类型为xml
            Response.Write("<?xml version='1.0' encoding='UTF-8'?>");   //声明xml
            Response.Write("<Northwind>");   //起始根元素
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                //子元素
                Response.Write("<Products>");
                Response.Write(string.Format("<productId>{0}</productId>", sdr.GetInt32(0)));
                Response.Write(string.Format("<productName>{0}</productName>", sdr.GetString(1)));
                Response.Write(string.Format("<unitprice>{0}</unitprice>", sdr.GetDecimal(2)));
                Response.Write("</Products>");
            }
            Response.Write("</Northwind>"); //终止根元素

        }
        finally
        {
            conn.Close();
        }

        Response.End(); //停止前台页面输出
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        //调用
        //ylb:1,
        //WriteXml();

        //ylb:2,
        //WriteXml2();

        //ylb:3,
        WriteXml3();
    }
}
复制代码

 

5,示例|讲解案例下载

博客园讲解:

       http://ylbtech.cnblogs.com/

百度文库开发文档:

       http://passport.baidu.com/?business&aid=6&un=ylbtech#7

谷歌开源代码下载:

       http://code.google.com/p/ylbtechaspnet/downloads/list

请单击“ylbtechASPnetXml100010011”

 

本文转自ylbtech博客园博客,原文链接:http://www.cnblogs.com/ylbtech/archive/2012/08/16/2642410.html,如需转载请自行联系原作者


相关文章
|
4月前
|
XML JavaScript 前端开发
SAP UI5 本地开发如何实现 XML 和 JavaScript 代码的自动完成和嵌入式 API 文档自动显示试读版
SAP UI5 本地开发如何实现 XML 和 JavaScript 代码的自动完成和嵌入式 API 文档自动显示试读版
54 0
|
4月前
|
XML JavaScript 数据格式
使用Dom4J解析XML文档
XML解析的方式 XML常见的两种解析方式: DOM: 要求解析器将整个XML文件全部加载到内存中,生成一个Document对象 优点:元素和元素之间保留结构、关系,可以针对元素进行增删查改操作 缺点:如果XML文件过大,可能会导致内存溢出 SAX:是一种速度更快,更加高效的解析方式。它是逐行扫描,边扫描边解析,并且以事件驱动的方式来进行具体的解析,每解析一行都会触发一个事件 优点: 不会出现内存溢出的问题,可以处理大文件 缺点:只能读,不能写 概念辨析: 解析器就是根据不同的解析方式提供具体的实现。 为了方便开发人员来解析XML,有一些方便操作的类库。例如Dom4j其中就包含了很多解
30 0
|
10月前
|
XML 自然语言处理 JavaScript
SAP UI5 本地开发如何实现 XML 和 JavaScript 代码的自动完成和嵌入式 API 文档自动显示
SAP UI5 本地开发如何实现 XML 和 JavaScript 代码的自动完成和嵌入式 API 文档自动显示
|
10月前
|
XML 存储 消息中间件
Tsung MQTT协议简介及MQTT xml文档配置介绍
Tsung MQTT协议简介及MQTT xml文档配置介绍
110 0
|
XML JavaScript Java
Java采用4种方法处理XML文档
Java采用4种方法处理XML文档
|
存储 开发框架 .NET
ASP.NET中HTTP请求(Request)、响应(Response)以及状态管理讲解
ASP.NET中HTTP请求(Request)、响应(Response)以及状态管理讲解
ASP.NET中HTTP请求(Request)、响应(Response)以及状态管理讲解
|
XML 数据格式
hutool将XML文档转换为String
hutool将XML文档转换为String
|
XML 缓存 Java
【XML】Java创建XML文档
【XML】Java创建XML文档
139 0
【XML】Java创建XML文档
|
XML JavaScript Java
Java Web之JSP操作XML(XML的文档结构 语法和注释、dom4j的下载与配置 应用dom4j创建、解析和修改XML)
Java Web之JSP操作XML(XML的文档结构 语法和注释、dom4j的下载与配置 应用dom4j创建、解析和修改XML)
170 0
Java Web之JSP操作XML(XML的文档结构 语法和注释、dom4j的下载与配置 应用dom4j创建、解析和修改XML)
|
XML 数据格式
C#XmlHelper帮助类操作Xml文档的通用方法汇总(下)
C#XmlHelper帮助类操作Xml文档的通用方法汇总(下)

相关产品

  • 云迁移中心
  • 相关课程

    更多