收藏 分销(赏)

在,NET 中处理 XML.ppt

上传人:de****a 文档编号:29770 上传时间:2020-11-23 格式:PPT 页数:23 大小:1.69MB 下载积分:0.5 金币
下载 相关 举报
在,NET 中处理 XML.ppt_第1页
第1页 / 共23页
在,NET 中处理 XML.ppt_第2页
第2页 / 共23页


点击查看更多>>
资源描述
在.NET中处理XML,2,回顾,跟踪是ASP.NET引入的新功能,只需对页面和应用程序启用此功能,就可以查看有关单个ASP.NET页请求的诊断信息页面级跟踪具有一个称为TraceMode的属性,此属性接受SortByCategory或SortByTime属性值,以决定如何显示输出结果应用程序级跟踪将启动对整个应用程序的跟踪。需要在web.config配置文件中进行设置缓存是一项在计算中广泛用来提高性能的技术,它将访问频率高的数据或构造成本高的数据保留在内存中输出缓存将缓存整个页面,数据缓存将设置内存变量缓存使用VS.NET的“Web安装项目”可以将应用程序打包成易于部署的形式,3,目标,理解XMLDocument结构使用XML命名空间中的XMLDocument对象使用XMLReader和XMLWriter对象使用XMLValidatingReader填充XML文件中的数据集使用数据集创建XML文档,4,XML文档结构,,标准,基于文本的数据标准,,,,通信,XML,,,,用于定义语义标签的规则集合,将文档分解为多个部分,标识文档各部分,,,元数据是定义用于定义其他特定于域的语义和结构化标记语言的语法用途,5,组织XML数据,标识使用的版本,,演示根元素的示例代码,...,Phonebook元素具有开始标签和结束标签,,,1998,具有子元素的Phonebook元素,6,System.Xml命名空间,System.Xml命名空间包含了处理Xml的类,以下是经常用到的类XmlTextReader类提供对XML数据的快速、非高速缓存的只进读访问XmlValidatingReader类提供DTD、XDR和XSDSchema验证XmlTextWriter类提供一种生成XML的快速只进方法XmlDataDocument类提供XmlDocument的实现,此XmlDocument可以与数据集关联。可以通过数据集的关系表示或XmlDataDocument的树表示,来同时查看和操作结构化的XMLXPathNavigator类提供W3CXPath1.0数据模型,而不是用于导航的光标样式模型的存储XslTransform类是一个W3CXSLT1.0规范兼容的XSLT处理器,用于转换XML文档XmlSchema对象模型类提供一组直接反映W3CXSD规范的可导航类。这些类支持在程序中创建XSDSchema,7,XMLDocument对象,内存,XML文档,,XML文档对象模型(XMLDOM)类,,提供了对读取、写入和操作XML文档的支持,XML文档对象,执行任务(如加载和保存文档),包括Load()、LoadXML()和Save(),用于访问文档中的所有节点,,+,8,XML节点类型,9,加载XML文档3-1,,,,,将XML文档加载到变量中,Load()方法,如果不能解析或访问URL,从指定位置加载XML文档,返回错误,并将文档对象的documentElement属性设置为null,10,加载XML文档3-2,加菲尔德5555555纽约26/10/1978迈克6666666纽约12/02/1978,privatevoidPage_Load(objectsender,System.EventArgse){XmlDocumentMyPhone=newXmlDocument();MyPhone.Load(@"C:\Inetpub\wwwroot\aspex\CH12\phone.xml");lblXmlData.Text=MyPhone.InnerXml.ToString();},11,加载XML文档3-3,LoadXML()方法,,使用提供的字符串加载XML文档,,加载成功则返回true,,加载失败则返回false,并将文档对象的documentElement属性设置为null,XmlDocumentMyPhone=newXmlDocument();stringxmlString=""+"加菲尔德"+"5555555"+"北京纽约"+"26/10/1978"+"迈克"+"6666666"+"纽约"+"12/02/1978"+"";MyPhone.LoadXml(xmlString);,12,获取节点和节点属性,XmlDocumentMyPhone=newXmlDocument();MyPhone.Load(Server.MapPath(“phone.xml"));//获取根元素XmlElementroot=MyPhone.DocumentElement;XmlElementphone=root.ChildNodes[0];,获取节点,节点属性,13,使用Save方法编写XML数据,XmlDocumentMyPhone=newXmlDocument();MyPhone.Load(Server.MapPath("phone.xml"));XmlElementnewFriendsName=MyPhone.CreateElement("Name");newFriendsName.InnerText="斯坦利";MyPhone.DocumentElement.InsertAfter(newFriendsName,MyPhone.DocumentElement.LastChild);XmlElementnewFriendsNumber=MyPhone.CreateElement("Number");newFriendsNumber.InnerText="7777777";MyPhone.DocumentElement.InsertAfter(newFriendsNumber,MyPhone.DocumentElement.LastChild);XmlElementnewFriendsCity=MyPhone.CreateElement("City");newFriendsCity.InnerText="加利福尼亚";MyPhone.DocumentElement.InsertAfter(newFriendsCity,MyPhone.DocumentElement.LastChild);XmlElementnewFriendsDOB=MyPhone.CreateElement("DateOfBirth");newFriendsDOB.InnerText="12/06/1984";MyPhone.DocumentElement.InsertAfter(newFriendsDOB,MyPhone.DocumentElement.LastChild);MyPhone.Save(Server.MapPath("phone1.xml"));Response.Write("数据已写入!单击“加载”查看Phone.xml");,输出结果,14,从XML文档中读取节点2-1,从XML文档中读取节点,XmlReader,,,,,,提供对XML数据流的快速访问,另一个派生类是XmlValidatingReader(读取XML数据,并支持DTD和Schema验证),由用于读取基于文本的XML文件的XmlTextReader类实现,一个抽象类,用于确定各种因素(如节点的深度),15,从XML文档中读取节点2-2,usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Xml;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;namespaceCH12{publicclassXMLReaderDemo:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.LabellblRecords;privatevoidPage_Load(objectsender,System.EventArgse){stringfileName=Server.MapPath(“Phone.xml“);XmlTextReaderobjXmlTextReader=newXmlTextReader(fileName);while(objXmlTextReader.Read()){if(objXmlTextReader.NodeType==XmlNodeType.Element){if(objXmlTextReader.LocalName.Equals("Name")||objXmlTextReader.LocalName.Equals("Number")){lblRecords.Text+=objXmlTextReader.ReadString()+"\t";}}}}}},16,在XML文档中写入节点2-1,在XML文档中写入节点,XmlWriter,,,XMLTextWriter类派生自该类,一个抽象类,帮助创建XML流并将数据写入到格式良好的XML文档,,17,在XML文档中写入节点2-2,usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Xml;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;namespaceCH12{publicclassXmlWriterDemo:System.Web.UI.Page{privatevoidPage_Load(objectsender,System.EventArgse){stringFileName=@"C:\Inetpub\wwwroot\aspex\CH12\phone.xml";XmlTextWriterobjXmlTextWriter=newXmlTextWriter(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();}}}…,输出结果,18,使用XML验证读取器验证XML数据,19,XML和数据集,数据集,存储XML数据,而不会引发任何错误,导入System.IO数据以读取XML数据,列的值列的值列的值列的值,数据集读取以下格式的数据:,,,20,使用ReadXml方法读取XML数据2-1,FileStreammyfs=newFileStream(Server.MapPath("xmldatagrid.xml"),FileMode.Open,FileAccess.Read);,如何打开XML文件,打开文件之后,定义一个StreamReader并把FileStream传入,StreamReadermyreader=newStreamReader(myfs);,数据集读取StreamReader.ReadXml()方法中的XML数据,DataSetmyds=newDataSet();myds.ReadXml(myreader);,需要将XML数据绑定到数据集,DataViewmySource=newDataView(myds.Tables[0]);dbgMyGrid.DataSource=mySource;dbgMyGrid.DataBind();,21,使用ReadXml方法读取XML数据,.Net开发者精彩站点学习XML与ASP.NETMicrosoftASP.NET官方网站,usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.IO;usingSystem.Data;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;namespaceCH12{publicclassReadXml:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.LabellblTableName;protectedSystem.Web.UI.WebControls.DataGriddgMyGrid;privatevoidPage_Load(objectsender,System.EventArgse){DataSetmyds=newDataSet();FileStreammyfs=newFileStream(Server.MapPath("xmldatagrid.xml"),FileMode.Open,FileAccess.Read);,,StreamReadermyreader=newStreamReader(myfs);myds.ReadXml(myreader);myfs.Close();DataViewmySource=newDataView(myds.Tables[0]);blTableName.Text=lblTableName.Text+mySource.Table.TableName;dgMyGrid.DataSource=mySource;dgMyGrid.DataBind();}}},22,使用WriteXML方法写入XML数据,usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;namespaceCH12{publicclassWritexml:System.Web.UI.Page{privatevoidPage_Load(objectsender,System.EventArgse){DataSetds=newDataSet("Test");SqlConnectionobjSqlConnection=newSqlConnection("server=VIJAYK;userid=sa;pwd=playware;”+“database=northwind");SqlDataAdapterobjSqlDataAdapter=newSqlDataAdapter("select*fromemployees",objSqlConnection);objSqlDataAdapter.Fill(ds,"MyEmployees");ds.WriteXml(Server.MapPath(“MyEmployees.xml"));Response.Write(“使用northwind数据库employees表中的记录”+“成功创建了XML文件");}}},Dataset对象的WriteXml()方法用于在目标文件夹中创建XML文件,示例6演示了将数据从SQLServer2000数据库中读取到数据集中,并将其以XML文件的形式进行保存。,,23,总结,XmlDocument类给出XML文档的树表示,XmlDocument类允许操作XML文档要在文本文件中读取和写入XML文档,则需要使用XmlTextReader和XmlTextWriter类。XmlTextReader和XmlTextWriter类和XmlDocument类比较,因为不需要把整个Xml文档读取到内存中,所以比XmlDocument占用资源少XmlValidatingReader类提供DTD、XML数据简化(XDR)以及XMLSchema验证服务,这些服务支持验证XML文档或XML文档的一部分Xml和数据集可以互相转换,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > PPT模板

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服