通用XML读取器
来源:互联网 发布:淘宝店铺介绍怎么填写 编辑:程序博客网 时间:2024/06/05 04:13
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(); } } }}