Upload
lazaro
View
200
Download
6
Embed Size (px)
DESCRIPTION
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Xml; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace CH12 { - PowerPoint PPT Presentation
Citation preview
1
ASP.Net 第十二讲
软件学院 NIIT教研室
在 XML 文档中写入节点 2-2using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Xml;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls; namespace CH12{ public class XmlWriterDemo : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { string FileName = @"C:\Inetpub\wwwroot\aspex\CH12\phone.xml"; XmlTextWriter objXmlTextWriter = new XmlTextWriter( FileName, null); objXmlTextWriter.Formatting = Formatting.Indented; objXmlTextWriter.Indentation= 6; objXmlTextWriter.WriteStartDocument(); objXmlTextWriter.WriteStartElement("", "PhoneBook", ""); objXmlTextWriter.WriteStartElement("", "Name", ""); objXmlTextWriter.WriteString(“加菲尔德 "); …
objXmlTextWriter.WriteEndElement(); objXmlTextWriter.WriteStartElement("", "Number", ""); objXmlTextWriter.WriteString("5555555"); objXmlTextWriter.WriteEndElement(); objXmlTextWriter.WriteStartElement("", "City", ""); objXmlTextWriter.WriteString(“纽约 "); objXmlTextWriter.WriteEndElement(); objXmlTextWriter.WriteStartElement("", "DateOfBirth", ""); objXmlTextWriter.WriteString("26/10/1978"); objXmlTextWriter.WriteEndElement(); objXmlTextWriter.WriteEndElement(); objXmlTextWriter.WriteEndDocument(); objXmlTextWriter.Flush(); objXmlTextWriter.Close(); } }} …
输出结果输出结果
2
ASP.Net 第十二讲
软件学院 NIIT教研室
使用 XML 验证读取器验证 XML 数据
属性值 说明 DTD 根据 DTD 规则验证文档
Schema 根据 XSD Schema 验证文档
XDR 根据 XDR Schema 验证文档
None 不需要验证
Auto 自动检测基于文档中声明的验证类型
3
ASP.Net 第十二讲
软件学院 NIIT教研室
XML 和数据集
数据集存储 XML 数据,而
不会引发任何错误
导入 System.IO 数据以读取
XML 数据
导入 System.IO 数据以读取
XML 数据
<DocumentElement>
<TableName>
<ColumnName1> 列的值 </ColumnName1>
<ColumnName2> 列的值 </ColumnName2>
</TableName>
<TableName>
<ColumnName1> 列的值 </ColumnName1>
<ColumnName2> 列的值 </ColumnName2>
</TableName>
</DocumentElement>
数据集读取以下格式的数据:
4
ASP.Net 第十二讲
软件学院 NIIT教研室
使用 ReadXml 方法读取 XML 数据 2-1
FileStream myfs = new FileStream(Server.MapPath
("xmldatagrid.xml"),FileMode.Open, FileAccess.Read);
如何打开 XML 文件
打开文件之后,定义一个 StreamReader 并把 FileStream 传入
StreamReader myreader = new StreamReader(myfs);
数据集读取 StreamReader. ReadXml() 方法中的 XML 数据
DataSet myds = new DataSet();
myds.ReadXml(myreader);
需要将 XML 数据绑定到数据集
DataView mySource = new DataView(myds.Tables[0]);
dbgMyGrid.DataSource = mySource;
dbgMyGrid.DataBind();
5
ASP.Net 第十二讲
软件学院 NIIT教研室
使用 ReadXml 方法读取 XML 数据</schema><DocumentElement> <Headlines> <TickerInfo>.Net 开发者 </TickerInfo> <TickerURL>www.microsoft.com</TickerURL> </Headlines> <Headlines> <TickerInfo> 精彩站点 </TickerInfo> <TickerURL>www.msn.com</TickerURL> </Headlines> <Headlines> <TickerInfo> 学习 XML 与 ASP.NET</TickerInfo> <TickerURL>www.xmlforasp.net</TickerURL> </Headlines> <Headlines> <TickerInfo>Microsoft ASP.NET 官方网站 </TickerInfo> <TickerURL>www.asp.net</TickerURL> </Headlines></DocumentElement></root>
using System;using System.Collections;using System.ComponentModel;using System.IO;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;namespace CH12{ public class ReadXml : System.Web.UI.Page {
protected System.Web.UI.WebControls.Label lblTableName;protected System.Web.UI.WebControls.DataGrid dgMyGrid;private void Page_Load(object sender, System.EventArgs e)
{ DataSet myds = new DataSet(); FileStream myfs = new FileStream(Server.MapPath ("xmldatagrid.xml"),FileMode.Open, FileAccess.Read);
<root><schema id="DocumentElement" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xdo="urn:schemas-microsoft-com:xml-xdo" xdo:DataSetName="DocumentElement"><element name="Headlines"> <complexType> <all> <element name="TickerInfo" type="string"></element> <element name="TickerURL" type="string"></element> </all> </complexType></element>
StreamReader myreader =
new StreamReader(myfs);
myds.ReadXml(myreader);
myfs.Close();
DataView mySource = new DataView(myds.Tables[0]);
blTableName.Text = lblTableName.Text+mySource.Table.TableName;
dgMyGrid.DataSource = mySource;dgMyGrid.DataBind();
} }}
6
ASP.Net 第十二讲
软件学院 NIIT教研室
使用 WriteXML 方法写入 XML 数据using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Data.SqlClient; using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;namespace CH12{ public class Writexml : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { DataSet ds = new DataSet("Test");
SqlConnection objSqlConnection = new SqlConnection ("server = VIJAYK; user id=sa; pwd=playware;”
+ “database=northwind"); SqlDataAdapter objSqlDataAdapter = new SqlDataAdapter(
"select * from employees", objSqlConnection); objSqlDataAdapter.Fill(ds, "MyEmployees"); ds.WriteXml(Server.MapPath (“MyEmployees.xml")); Response.Write(“ 使用 northwind 数据库 employees 表中的记录”
+ “ 成功创建了 XML 文件 ");}
}}
Dataset 对象的 WriteXml() 方法用于在目标文件夹中创建 XML 文件
示例 6 演示了将数据从 SQL Server 2000 数据库中读取到数据集中,并将其以 XML 文件的形式进行保存。
7
ASP.Net 第十二讲
软件学院 NIIT教研室
总结 XmlDocument 类给出 XML 文档的树表示, XmlDocument 类允许操作 XML 文档
要在文本文件中读取和写入 XML 文档,则需要使用XmlTextReader 和 XmlTextWriter 类。 XmlTextReader和 XmlTextWriter类和 XmlDocument类比较,因为不需要把整个 Xml文档读取到内存中,所以比 XmlDocument占用资源少
XmlValidatingReader 类提供 DTD、 XML 数据简化(XDR) 以及 XML Schema 验证服务,这些服务支持验
证 XML 文档或 XML 文档的一部分 Xml和数据集可以互相转换