(声明:本系列只想给大家介绍.net框架,并不是语法和类的使用的讲解,所以只能概括的描述一下所提到的类,如果有疑问可以到MSDN上面去查)

上面一篇,对system.Reflection做了初步的研究,本来这篇开始要讲解Winform应用程序的流程框架,可是突然想到还有XML这个东西没有讲解,只好这篇补上了,下篇再讲应用程序吧,失误,请原谅!

XML是一种标记语言,就应该有一种工具按一定的语法来分析和理解存储在文档中信息。这个工具就是XML分析器---一个组件用于读标记文本并返回指定平台的对象。.NET 框架支持两种不同的分析模式:XMLDOM分析器和XML阅写器。我们来看图

图解DotNet框架之六:System.XML

1.读写器:

它的工作方式类似于数据库的游标。XML阅读器的客户端收到一个指向阅读器实例的引用。该实例提取底层的数据流并把取出的数据呈现为一棵XML树。阅读器类提供只读、向前的游标,你可以用阅读器类提供的方法滚动游标遍历结果集中的每一条数据。
XMLReader:是一个提供对 XML文档 数据的非缓存、只进只读访问的抽象基类。有二个子类继承并扩展了他.

XMLTextReader:继承自XMLReader,提供对 XML文档 数据进行快速、非缓存、只进访问的读取器。

XMLNodeReader:继承自XMLReader,提供对XML文档的Node 中的 XML 数据进行快速、非缓存的只进访问的读取器。

XMLWrite:一个编写器抽象基类,该编写器提供一种快速、非缓存和只进的方式来生成包含 XML 数据的流或文件。

2.DOM分析器:

XMLNode: XML 文档中的单个节点。是 DOM 实现中的基类。

XMLAttribute:继承自XMLNode,表示XML文档中节点的属性。

XMLDocument:继承自XMLNode,表示XML文档。

XMLLinkedNode :获取紧靠该节点(之前或之后)的节点。

XML也是一种数据保存的格式,他就像个数据库表。那么他也用到了我们在System.Data一篇中提到的数据源架构模式,我们来回忆一下3种属于数据层的架构模式

1.表数据入口:一个表实例处理数据库表中的所有行.(Adapter中承载了一张表,他就代表数据库,可以对数据进行填删改查等操作)

2.行数据入口:访问表中单条记录地对象,一行一个实例.(DataReader,这里的行数据只能读取,而不能修改.每一次Reader.Next(),就会返回一个数据行.)

3.数据影射器(ORM):.NET中没有这种模式,ORM本身就很复杂,这里就不讲解了.

这里的阅读器就相当于System.Data中的DataReader,他是一条一条的读取数据,每条数据都是一个Reader中的实例,所以他属于行数据入口。分析器就好比Adapter,将XML文档的所有数据一次装载了进来,一个DOM就是一个表(文档)的实例,那么他属于行数据入口。

我们来看下XML,在.net中如何操作。

使用读写器

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->图解DotNet框架之六:System.XMLXmlTextReaderaXmlTextReader=newXmlTextReader(@"C:/text.xml");
图解DotNet框架之六:System.XML
while(aXmlTextReader.Read())
图解DotNet框架之六:System.XML图解DotNet框架之六:System.XML
图解DotNet框架之六:System.XML{
图解DotNet框架之六:System.XML
//图解DotNet框架之六:System.XML
图解DotNet框架之六:System.XML
}

图解DotNet框架之六:System.XMLaXmlTextReader.Close();
图解DotNet框架之六:System.XML
图解DotNet框架之六:System.XML
图解DotNet框架之六:System.XMLXmlTextWriterxmlWriter
=newXmlTextWriter(url,System.Text.Encoding.UTF8);
图解DotNet框架之六:System.XMLxmlWriter.WriteStartDocument();
图解DotNet框架之六:System.XMLxmlWriter.WriteStartElement(
"Root");
图解DotNet框架之六:System.XMLxmlWriter.WriteStartElement(
"Leaf");
图解DotNet框架之六:System.XMLxmlWriter.WriteString(
"Test");
图解DotNet框架之六:System.XMLxmlWriter.WriteEndElement();
图解DotNet框架之六:System.XMLxmlWriter.WriteEndElement();
图解DotNet框架之六:System.XMLxmlWriter.Close();
图解DotNet框架之六:System.XML
图解DotNet框架之六:System.XML

使用分析器:

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->图解DotNet框架之六:System.XMLXmlDocumentxmlDoc=newXmlDocument();
图解DotNet框架之六:System.XML
//创建根节点
图解DotNet框架之六:System.XML
XmlElementroot=xmlDoc.CreateElement("Root");
图解DotNet框架之六:System.XMLxmlDoc.AppendChild(root);
图解DotNet框架之六:System.XMLXmlNodebook
=xmlDoc.CreateElement("Book");
图解DotNet框架之六:System.XMLXmlElementtitle
=xmlDoc.CreateElement("Title");
图解DotNet框架之六:System.XMLtitle.InnerText
="SQLServer";
图解DotNet框架之六:System.XMLbook.AppendChild(title);
图解DotNet框架之六:System.XMLXmlElementisbn
=xmlDoc.CreateElement("ISBN");
图解DotNet框架之六:System.XMLisbn.InnerText
="444444";
图解DotNet框架之六:System.XMLbook.AppendChild(isbn);
图解DotNet框架之六:System.XMLXmlElementauthor
=xmlDoc.CreateElement("Author");
图解DotNet框架之六:System.XMLauthor.InnerText
="jia";
图解DotNet框架之六:System.XMLbook.AppendChild(author);
图解DotNet框架之六:System.XMLXmlElementprice
=xmlDoc.CreateElement("Price");
图解DotNet框架之六:System.XMLprice.InnerText
="120";
图解DotNet框架之六:System.XMLprice.SetAttribute(
"Unit","");
图解DotNet框架之六:System.XMLbook.AppendChild(price);
图解DotNet框架之六:System.XMLroot.AppendChild(book);
图解DotNet框架之六:System.XMLxmlDoc.Save(
"Books.xml");
图解DotNet框架之六:System.XML

OK,对XML的操作我们就介绍到这里。

相关文章:

  • 2021-10-02
  • 2021-12-07
猜你喜欢
  • 2021-08-28
  • 2021-07-06
  • 2021-08-19
  • 2021-11-05
  • 2021-06-29
  • 2021-04-25
相关资源
相似解决方案