using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Data.SqlClient;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//声明XmlReader对象,因为从数据读的时候返回的是这个对象,方便两种方式读取
XmlReader reader = null;
SqlConnection conn = null;
SqlCommand cmd = null;
try
{
//此变量用判断是否从数据集读还是文件中读
bool israd = true;
conn = new SqlConnection("Data Source=.;Initial Catalog=Northwind;Integrated Security=True");
conn.Open();
cmd = conn.CreateCommand();
cmd.CommandText = "SELECT [EmployeeID], [City], [Title] FROM [Employees] for xml auto";
//使用三元运算符创建XmlReader对像
reader = israd ? cmd.ExecuteXmlReader() : new XmlTextReader(Request.MapPath("books.xml"));
while (reader.Read())
{
switch (reader.NodeType)
{
//是否是声明
case XmlNodeType.XmlDeclaration:
Response.Write(Server.HtmlEncode("<?xml version='1.0'?>") + "</br>");
break;
//是否是指今
case XmlNodeType.ProcessingInstruction:
Response.Write(Server.HtmlEncode("<?" + reader.Name + " " + reader.Value + "?>") + "</br>");
break;
//是否是元素
case XmlNodeType.Element:
Response.Write(Server.HtmlEncode("<")+reader.Name);
//判断某个元素是否具有属性
if (reader.HasAttributes)
{
//使用循环读出里面的所有属性
for (int i = 0; i < reader.AttributeCount; i++)
{
//使用这个方法依次移动属性
reader.MoveToAttribute(i);
Response.Write(" "+reader.Name+"=" + reader[i]);
}
}
Response.Write(Server.HtmlEncode(">")+"</br>");
break;
//是否是文本
case XmlNodeType.Text:
Response.Write(reader.Value+"</br>");
break;
//是否是注释
case XmlNodeType.Comment:
Response.Write(Server.HtmlEncode("<!--" + reader.Value + "-->") + "</br>");
break;
//是否是结束元素
case XmlNodeType.EndElement:
Response.Write(Server.HtmlEncode("</" + reader.Name + ">") + "</br>");
break;
}
}
}
catch(Exception ex)
{
Response.Write(ex.Message);
}
finally
{
//关闭读取器
if (reader != null)
{
reader.Close();
}
//关闭数据库连接
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
}
}
通用XML读取器
最新推荐文章于 2022-08-09 16:21:45 发布