14-XML文件操作.ppt_第1页
14-XML文件操作.ppt_第2页
14-XML文件操作.ppt_第3页
14-XML文件操作.ppt_第4页
14-XML文件操作.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第14章 处理 XML,2,目标,理解XMLDocument 结构 使用 XML 命名空间中的 XMLDocument 对象 使用 XMLReader 和 XMLWriter 对象 填充 XML 文件中的数据集 使用数据集创建 XML 文档,3,XML 文档结构,标准,基于文本的数据标准,通信,XML,用于定义语义标签的规则集合,将文档分解为多个部分,标识文档各部分,元数据是定义用于定义其他特定于域的语义和结构化标记语言的语法用途,4,组织 XML 数据,标识使用的版本,演示根元素的示例代码, . ,Phonebook 元素具有开始标签 和结束标签, 1998 ,具有子元素 的 Phonebo

2、ok 元素,5,System.Xml命名空间,System.Xml命名空间包含了处理Xml的类,以下是经常用到的类 XmlTextReader 类提供对 XML 数据的快速、非高速缓存的只进读访问 XmlValidatingReader 类提供 DTD、XDR 和 XSD Schema 验证 XmlTextWriter 类提供一种生成 XML 的快速只进方法 XmlDataDocument 类提供 XmlDocument 的实现,此 XmlDocument 可以与数据集关联。可以通过数据集的关系表示或 XmlDataDocument 的树表示,来同时查看和操作结构化的 XML XPathNav

3、igator 类提供 W3C XPath 1.0 数据模型,而不是用于导航的光标样式模型的存储 XslTransform 类是一个 W3C XSLT 1.0 规范兼容的 XSLT 处理器,用于转换 XML 文档 XmlSchema 对象模型类提供一组直接反映 W3C XSD 规范的可导航类。这些类支持在程序中创建 XSD Schema,6,XMLDocument 对象,内存,XML 文档,XML 文档对象模型 (XML DOM) 类,提供了对读取、写入和操作 XML 文档的支持,XML 文档对象,执行任务 (如加载和保存文档),包括 Load()、 LoadXML() 和 Save(),用于访

4、问文档中的所有节点,+,7,XML 节点类型,8,加载 XML 文档 3-1,将 XML 文档 加载到变量中,Load( ) 方法,如果不能解析或 访问 URL,从指定位置 加载 XML 文档,返回错误,并将文档对象的 documentElement 属性设置为 null,9,加载 XML 文档 3-2, 加菲尔德 5555555 纽约 26/10/1978 迈克 6666666 纽约 12/02/1978 ,private void Form1_Load(object sender , System.EventArgs e) XmlDocument MyPhone = new XmlDocu

5、ment(); MyPhone.Load( C:InetpubwwwrootaspexCH12phone.xml); lblXmlData.Text = MyPhone.InnerXml.ToString(); ,10,加载 XML 文档 3-3,LoadXML() 方法,使用提供的字符串加载 XML 文档,加载成功则返回 true,加载失败则返回 false,并将文档对象的 documentElement 属性设置为 null,XmlDocument MyPhone = new XmlDocument(); string xmlString = + 加菲尔德 + 5555555 + 北京纽约

6、 + 26/10/1978 + 迈克 + 6666666 + 纽约 + 12/02/1978 + ; MyPhone.LoadXml( xmlString );,11,获取节点和节点属性,XmlDocument MyPhone = new XmlDocument(); MyPhone.Load ( “phone.xml); /获取根元素 XmlElement root = MyPhone.DocumentElement; XmlElement phone = root.ChildNodes0;,获取节点,12,获取节点和节点属性,节点属性,13,使用 Save 方法编写 XML 数据,XmlD

7、ocument MyPhone = new XmlDocument(); MyPhone.Load(Server.MapPath(phone.xml); XmlElement newFriendsName = MyPhone.CreateElement( Name ); newFriendsName.InnerText = 斯坦利; MyPhone.DocumentElement.InsertAfter( newFriendsName , MyPhone.DocumentElement.LastChild ); XmlElement newFriendsNumber = MyPhone.Cre

8、ateElement(Number); newFriendsNumber.InnerText = 7777777; MyPhone.DocumentElement.InsertAfter( newFriendsNumber , MyPhone.DocumentElement.LastChild ); XmlElement newFriendsCity = MyPhone.CreateElement(City); newFriendsCity.InnerText = 加利福尼亚; MyPhone.DocumentElement.InsertAfter( newFriendsCity , MyPh

9、one.DocumentElement.LastChild); XmlElement newFriendsDOB = MyPhone.CreateElement( DateOfBirth ); newFriendsDOB.InnerText = 12/06/1984; MyPhone.DocumentElement.InsertAfter( newFriendsDOB , MyPhone.DocumentElement.LastChild ); MyPhone.Save(phone1.xml); MessageBox.Show(数据已写入!单击“加载”查看 Phone.xml);,输出结果,1

10、4,从 XML 文档中读取节点 2-1,从 XML 文档中读取节点,XmlReader,提供对 XML 数据流 的快速访问,另一个派生类是 XmlValidatingReader (读取 XML 数据,并支持 DTD 和 Schema 验证),由用于读取基于文本的 XML 文件的 XmlTextReader 类实现,一个抽象类,用于确定各种因素(如节点的深度),15,从 XML 文档中读取节点 2-2,private void Form1_Load(object sender, System.EventArgs e) string fileName = Server.MapPath (“Pho

11、ne.xml “); XmlTextReader objXmlTextReader = new XmlTextReader(fileName); while(objXmlTextReader.Read() if (objXmlTextReader.NodeType = XmlNodeType.Element) if (objXmlTextReader.LocalName.Equals(Name) | objXmlTextReader.LocalName.Equals (Number) lblRecords.Text += objXmlTextReader.ReadString() + t; ,

12、16,在 XML 文档中写入节点 2-1,在 XML 文档中写入节点,XmlWriter,XML TextWriter 类派生自该类,一个抽象类,帮助创建 XML 流并将数据写入到格式良好的 XML 文档,17,在 XML 文档中写入节点 2-2,public class XmlWriterDemo : Form private void Page_Load(object sender, System.EventArgs e) string FileName = C:InetpubwwwrootaspexCH12phone.xml; XmlTextWriter objXmlTextWriter

13、 = new XmlTextWriter( FileName, null); objXmlTextWriter.Formatting = Formatting.Indented; objXmlTextWriter.Indentation= 6; objXmlTextWriter.WriteStartDocument(); objXmlTextWriter.WriteStartElement(, PhoneBook, ); objXmlTextWriter.WriteStartElement(, Name, ); objXmlTextWriter.WriteString(“加菲尔德); ,obj

14、XmlTextWriter.WriteEndElement(); objXmlTextWriter.WriteStartElement(, Number, ); objXmlTextWriter.WriteString(5555555); objXmlTextWriter.WriteEndElement(); objXmlTextWriter.WriteStartElement(, City, ); objXmlTextWriter.WriteString(“纽约); objXmlTextWriter.WriteEndElement(); objXmlTextWriter.WriteStart

15、Element(, DateOfBirth, ); objXmlTextWriter.WriteString(26/10/1978); objXmlTextWriter.WriteEndElement(); objXmlTextWriter.WriteEndElement(); objXmlTextWriter.WriteEndDocument(); objXmlTextWriter.Flush(); objXmlTextWriter.Close(); ,输出结果,18,XML 和数据集,数据集,存储 XML 数据,而不会引发任何错误,导入 System.IO 数据以读取 XML 数据, 列的

16、值 列的值 列的值 列的值 ,数据集读取以下格式的数据:,19,使用 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 数据,

17、DataSet myds = new DataSet(); myds.ReadXml(myreader);,需要将 XML 数据绑定到数据集,DataView mySource = new DataView(myds.Tables0); dbgMyGrid.DataSource = mySource; dbgMyGrid.DataBind();,20,使用 ReadXml 方法读取 XML 数据, .Net 开发者 精彩站点 学习 XML 与 ASP.NET Microsoft ASP.NET 官方网站 ,public class ReadXml : System.Web.UI.Page pr

18、otected 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);, ,St

19、reamReader 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(); ,21,使用 WriteXML 方法写入 XML 数据,public class Writexml : Form private void Form1_Load(object sender, System.EventArgs e) DataSet ds = new DataSet(Test); SqlConnection objSqlConnection = new SqlConne

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论