7
ASP.Net 第第第第 第第第第 NIIT 第第第 第 XML 第第第第第第第 2-2 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 { 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(); } } } 第第第第

在 XML 文档中写入节点 2-2

  • 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和数据集可以互相转换