《第十二讲在NET中处理XMLppt课件.ppt》由会员分享,可在线阅读,更多相关《第十二讲在NET中处理XMLppt课件.ppt(24页珍藏版)》请在三一办公上搜索。
1、在.NET 中处理 XML,西源软件培训中心,回顾,跟踪是ASP.NET 引入的新功能,只需对页面和应用程序启用此功能,就可以查看有关单个ASP.NET 页请求的诊断信息页面级跟踪具有一个称为 TraceMode 的属性,此属性接受 SortByCategory 或 SortByTime 属性值,以决定如何显示输出结果应用程序级跟踪将启动对整个应用程序的跟踪。需要在web.config配置文件中进行设置,回顾,缓存是一项在计算中广泛用来提高性能的技术,它将访问频率高的数据或构造成本高的数据保留在内存中输出缓存将缓存整个页面,数据缓存将设置内存变量缓存使用 VS.NET的“Web安装项目”可以将
2、应用程序打包成易于部署的形式,目标,理解XMLDocument 结构掌握 XML 命名空间中的 XMLDocument 对象掌握XMLReader 和 XMLWriter 对象掌握XMLValidatingReader了解填充 XML 文件中的数据集掌握数据集创建 XML 文档,XML 文档结构,标准,基于文本的数据标准,通信,XML,用于定义语义标签的规则集合,将文档分解为多个部分,标识文档各部分,元数据是定义用于定义其他特定于域的语义和结构化标记语言的语法用途,组织 XML 数据,标识使用的版本,演示根元素的示例代码,.,Phonebook 元素具有开始标签 和结束标签,1998,具有子元
3、素 的 Phonebook 元素,System.Xml命名空间,System.Xml命名空间包含了处理Xml的类,以下是经常用到的类XmlTextReader 类提供对 XML 数据的快速、非高速缓存的只进读访问XmlValidatingReader 类提供 DTD、XDR 和 XSD Schema 验证XmlTextWriter 类提供一种生成 XML 的快速只进方法XmlDataDocument 类提供 XmlDocument 的实现,此 XmlDocument 可以与数据集关联。可以通过数据集的关系表示或 XmlDataDocument 的树表示,来同时查看和操作结构化的 XMLXPat
4、hNavigator 类提供 W3C XPath 1.0 数据模型,而不是用于导航的光标样式模型的存储XslTransform 类是一个 W3C XSLT 1.0 规范兼容的 XSLT 处理器,用于转换 XML 文档XmlSchema 对象模型类提供一组直接反映 W3C XSD 规范的可导航类。这些类支持在程序中创建 XSD Schema,XMLDocument 对象,内存,XML文档,XML 文档对象模型(XML DOM)类,提供了对读取、写入和操作 XML 文档的支持,XML 文档对象,执行任务(如加载和保存文档),包括 Load()、LoadXML()和 Save(),用于访问文档中的所
5、有节点,+,XML 节点类型,加载 XML 文档,将 XML 文档加载到变量中,Load()方法,如果不能解析或访问 URL,从指定位置加载 XML 文档,返回错误,并将文档对象的 documentElement 属性设置为 null,加载 XML 文档,加菲尔德 5555555 纽约 26/10/1978 迈克 6666666 纽约 12/02/1978,private void Page_Load(object sender,System.EventArgs e)XmlDocument MyPhone=new XmlDocument();MyPhone.Load(C:Inetpubwwwr
6、ootaspexCH12phone.xml);lblXmlData.Text=MyPhone.InnerXml.ToString();,加载 XML 文档,LoadXML()方法,使用提供的字符串加载 XML 文档,加载成功则返回 true,加载失败则返回 false,并将文档对象的 documentElement 属性设置为 null,XmlDocument MyPhone=new XmlDocument();string xmlString=+加菲尔德+5555555+北京纽约+26/10/1978+迈克+6666666+纽约+12/02/1978+;MyPhone.LoadXml(xml
7、String);,获取节点和节点属性,XmlDocument MyPhone=new XmlDocument();MyPhone.Load(Server.MapPath(“phone.xml);/获取根元素XmlElement root=MyPhone.DocumentElement;XmlElement phone=root.ChildNodes0;,获取节点,节点属性,使用 Save 方法编写 XML 数据,XmlDocument MyPhone=new XmlDocument();MyPhone.Load(Server.MapPath(phone.xml);XmlElement newF
8、riendsName=MyPhone.CreateElement(Name);newFriendsName.InnerText=斯坦利;MyPhone.DocumentElement.InsertAfter(newFriendsName,MyPhone.DocumentElement.LastChild);XmlElement newFriendsNumber=MyPhone.CreateElement(Number);newFriendsNumber.InnerText=7777777;MyPhone.DocumentElement.InsertAfter(newFriendsNumber,
9、MyPhone.DocumentElement.LastChild);XmlElement newFriendsCity=MyPhone.CreateElement(City);newFriendsCity.InnerText=加利福尼亚;MyPhone.DocumentElement.InsertAfter(newFriendsCity,MyPhone.DocumentElement.LastChild);XmlElement newFriendsDOB=MyPhone.CreateElement(DateOfBirth);newFriendsDOB.InnerText=12/06/1984
10、;MyPhone.DocumentElement.InsertAfter(newFriendsDOB,MyPhone.DocumentElement.LastChild);MyPhone.Save(Server.MapPath(phone1.xml);Response.Write(数据已写入!单击“加载”查看 Phone.xml);,输出结果,从 XML 文档中读取节点,从 XML 文档中读取节点,XmlReader,提供对 XML 数据流的快速访问,另一个派生类是 XmlValidatingReader(读取 XML 数据,并支持 DTD 和 Schema 验证),由用于读取基于文本的 XM
11、L 文件的 XmlTextReader 类实现,一个抽象类,用于确定各种因素(如节点的深度),从 XML 文档中读取节点,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.U
12、I.HtmlControls;namespace CH12 public class XMLReaderDemo:System.Web.UI.Page protected System.Web.UI.WebControls.Label lblRecords;private void Page_Load(object sender,System.EventArgs e)string fileName=Server.MapPath(“Phone.xml“);XmlTextReader objXmlTextReader=new XmlTextReader(fileName);while(objXml
13、TextReader.Read()if(objXmlTextReader.NodeType=XmlNodeType.Element)if(objXmlTextReader.LocalName.Equals(Name)|objXmlTextReader.LocalName.Equals(Number)lblRecords.Text+=objXmlTextReader.ReadString()+t;,在 XML 文档中写入节点,在 XML 文档中写入节点,XmlWriter,XML TextWriter 类派生自该类,一个抽象类,帮助创建 XML 流并将数据写入到格式良好的 XML 文档,在 XM
14、L 文档中写入节点,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 XmlWrite
15、rDemo:System.Web.UI.Page private void Page_Load(object sender,System.EventArgs e)string FileName=C:InetpubwwwrootaspexCH12phone.xml;XmlTextWriter objXmlTextWriter=new XmlTextWriter(FileName,null);objXmlTextWriter.Formatting=Formatting.Indented;objXmlTextWriter.Indentation=6;objXmlTextWriter.WriteSta
16、rtDocument();objXmlTextWriter.WriteStartElement(,PhoneBook,);objXmlTextWriter.WriteStartElement(,Name,);objXmlTextWriter.WriteString(“加菲尔德);,objXmlTextWriter.WriteEndElement();objXmlTextWriter.WriteStartElement(,Number,);objXmlTextWriter.WriteString(5555555);objXmlTextWriter.WriteEndElement();objXml
17、TextWriter.WriteStartElement(,City,);objXmlTextWriter.WriteString(“纽约);objXmlTextWriter.WriteEndElement();objXmlTextWriter.WriteStartElement(,DateOfBirth,);objXmlTextWriter.WriteString(26/10/1978);objXmlTextWriter.WriteEndElement();objXmlTextWriter.WriteEndElement();objXmlTextWriter.WriteEndDocument
18、();objXmlTextWriter.Flush();objXmlTextWriter.Close();,输出结果,使用XML验证读取器验证XML数据,XML 和数据集,数据集,存储 XML 数据,而不会引发任何错误,导入 System.IO 数据以读取 XML 数据,列的值 列的值 列的值 列的值,数据集读取以下格式的数据:,使用 ReadXml 方法读取 XML 数据,FileStream myfs=new FileStream(Server.MapPath(xmldatagrid.xml),FileMode.Open,FileAccess.Read);,如何打开 XML 文件,打开文件
19、之后,定义一个 StreamReader并把 FileStream传入,StreamReader myreader=new StreamReader(myfs);,数据集读取 StreamReader.ReadXml()方法中的 XML 数据,DataSet myds=new DataSet();myds.ReadXml(myreader);,需要将 XML 数据绑定到数据集,DataView mySource=new DataView(myds.Tables0);dbgMyGrid.DataSource=mySource;dbgMyGrid.DataBind();,使用 ReadXml 方法
20、读取 XML 数据,.Net 开发者 精彩站点 学习 XML 与 ASP.NET Microsoft ASP.NET 官方网站,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
21、.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(Serve
22、r.MapPath(xmldatagrid.xml),FileMode.Open,FileAccess.Read);,StreamReader myreader=new StreamReader(myfs);myds.ReadXml(myreader);myfs.Close();DataView mySource=new DataView(myds.Tables0);blTableName.Text=lblTableName.Text+mySource.Table.TableName;dgMyGrid.DataSource=mySource;dgMyGrid.DataBind();,使用 Wr
23、iteXML 方法写入 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 p
24、ublic 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 e
25、mployees,objSqlConnection);objSqlDataAdapter.Fill(ds,MyEmployees);ds.WriteXml(Server.MapPath(“MyEmployees.xml);Response.Write(“使用 northwind 数据库 employees 表中的记录”+“成功创建了 XML 文件);,Dataset 对象的 WriteXml()方法用于在目标文件夹中创建 XML 文件,示例 演示了将数据从 SQL Server 2000 数据库中读取到数据集中,并将其以 XML 文件的形式进行保存。,总结,XmlDocument 类给出 XML 文档的树表示,XmlDocument类允许操作 XML 文档要在文本文件中读取和写入 XML 文档,则需要使用 XmlTextReader 和 XmlTextWriter 类。XmlTextReader和XmlTextWriter类和XmlDocument类比较,因为不需要把整个Xml文档读取到内存中,所以比XmlDocument占用资源少XmlValidatingReader 类提供 DTD、XML 数据简化(XDR)以及 XML Schema 验证服务,这些服务支持验证 XML 文档或 XML 文档的一部分Xml和数据集可以互相转换,
链接地址:https://www.31ppt.com/p-5325498.html