XML学习笔记(三):写入XML文档的XmlTextWriter

页面代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WriteXML.aspx.cs" Inherits="WriteXML" %>
 
<!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>
    <form id="form1" runat="server">
    <div>
        ConnecionString:
        <asp:TextBox ID="TextBox1" runat="server" Height="70px" Width="531px"></asp:TextBox><br />
        Table Name:
        <asp:TextBox ID="TextBox2" runat="server" Height="48px" Width="525px"></asp:TextBox><br />
        Destination File Name:
        <asp:TextBox ID="TextBox3" runat="server" Height="56px" Width="519px"></asp:TextBox><br />
    </div>
    <asp:RadioButton ID="RadioButton1" Text="Columns as elements" runat="server" GroupName="ExportType" />
    <br />
    <asp:RadioButton ID="RadioButton2" Text="Columns as attributes" runat="server" GroupName="ExportType" />
    <br />
    <asp:Button ID="Button1" runat="server" Height="31px" Text="Export Data" Width="134px"
        OnClick="Button1_Click" />
    </form>
</body>
</html>

执行代码:

   1:  using System;
   2:  using System.Data.SqlClient;
   3:  using System.Xml;
   4:   
   5:  public partial class WriteXML : System.Web.UI.Page
   6:  {
   7:      protected void Page_Load(object sender, EventArgs e)
   8:      {
   9:   
  10:      }
  11:      protected void Button1_Click(object sender, EventArgs e)
  12:      {
  13:          SqlConnection cnn = null;
  14:          SqlCommand cmd = null;
  15:          SqlDataReader reader = null;
  16:          XmlTextWriter writer = null;
  17:          try
  18:          {
  19:              cnn = new SqlConnection(TextBox1.Text);
  20:              cmd = new SqlCommand();
  21:              cmd.Connection = cnn;
  22:              cmd.CommandText = "select * from " + TextBox2.Text;
  23:              cnn.Open();
  24:              reader = cmd.ExecuteReader();
  25:              writer = new XmlTextWriter(TextBox3.Text, null);
  26:              writer.WriteStartDocument();
  27:              writer.WriteComment("File exported on " + DateTime.Now);
  28:              writer.WriteStartElement("table");
  29:              while (reader.Read())
  30:              {
  31:                  if (RadioButton1.Checked)
  32:                  {
  33:                      writer.WriteStartElement("row");
  34:                      for (int i = 0; i < reader.FieldCount; i++)
  35:                      {
  36:                          writer.WriteStartElement(reader.GetName(i));
  37:                          writer.WriteString(reader.GetValue(i).ToString());
  38:                          writer.WriteEndElement();
  39:                      }
  40:                      writer.WriteEndElement();
  41:                  }
  42:                  else
  43:                  {
  44:                      writer.WriteStartElement("row");
  45:                      for (int i = 0; i < reader.FieldCount; i++)
  46:                      {
  47:                          writer.WriteAttributeString(reader.GetName(i),
  48:                          reader.GetValue(i).ToString());
  49:                      }
  50:                      writer.WriteEndElement();
  51:                  }
  52:              }
  53:              writer.WriteEndElement();
  54:          }
  55:          catch (Exception ex)
  56:          {
  57:              Response.Write(ex.Message);
  58:          }
  59:          finally
  60:          {
  61:              writer.Close();
  62:              reader.Close();
  63:              cnn.Close();
  64:          }
  65:      }
  66:  }

执行效果和结果:

2009-05-09_155051

columns as elements:

2009-05-09_155527

colunms as attributes:

2009-05-09_155637

转载于:https://www.cnblogs.com/apiaceae/archive/2009/05/09/1453222.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值