using System;
using SystemXml;
namespace ReadXML
{
class Class
{
static void Main( string[] args )
{
int ws = ;
int pi = ;
int dc = ;
int cc = ;
int ac = ;
int et = ;
int el = ;
int xd = ;
XmlTextReader textReader = new XmlTextReader(C:\\booksxml);
while (textReaderRead())
{
XmlNodeType nType = textReaderNodeType;
// 节点类型为XmlDeclaration
if (nType == XmlNodeTypeXmlDeclaration)
{
ConsoleWriteLine(Declaration: + textReaderNameToString());
xd = xd + ;
}
// 节点类型为Comment
if( nType == XmlNodeTypeComment)
{
ConsoleWriteLine(Comment: + textReaderNameToString());
cc = cc + ;
}
// 节点类型为Attribute
if( nType == XmlNodeTypeAttribute)
{
ConsoleWriteLine(Attribute: + textReaderNameToString());
ac = ac + ;
}
// 节点类型为Element
if ( nType == XmlNodeTypeElement)
{
ConsoleWriteLine(Element: + textReaderNameToString());
el = el + ;
}
// 节点类型为Entity
if ( nType == XmlNodeTypeEntity )
{
ConsoleWriteLine(Entity: + textReaderNameToString());
et = et + ;
}
// 节点类型为Process Instruction
if( nType == XmlNodeType ProcessInstruction )
{
ConsoleWriteLine(Process Instruction: + textReaderNameToString());
pi = pi + ;
}
// 节点类型为DocumentType
if( nType == XmlNodeTypeDocumentType)
{
ConsoleWriteLine(DocumentType: + textReaderNameToString());
dc = dc + ;
}
// 节点类型为Whitespace
if ( nType == XmlNodeTypeWhitespace )
{
ConsoleWriteLine(WhiteSpace: + textReaderNameToString());
ws = ws + ;
}
}
// 在控制台中显示每种类型的数目
ConsoleWriteLine(Total Comments: + ccToString());
ConsoleWriteLine(Total Attributes: + acToString());
ConsoleWriteLine(Total Elements: + elToString());
ConsoleWriteLine(Total Entity: + etToString());
ConsoleWriteLine(Total Process Instructions: + piToString());
ConsoleWriteLine(Total Declaration: + xdToString());
ConsoleWriteLine(Total DocumentType: + dcToString());
ConsoleWriteLine(Total WhiteSpaces: + wsToString());
}
}
}
以上我向大家介绍了如何运用XmlTextReader类的对象来读取XML文档并根据节点的NodeType属性来取得其节点类型信息同时XmlReader这个基类还有XmlNodeReader和XmlValidatingReader等派生类它们分别是用来读取XML文档的节点和模式的限于篇幅这里就不介绍了读者可以参考有关资料
四写XML文档的方法
XmlWriter类包含了写XML文档所需的方法和属性它是XmlTextWriter类和XmlNodeWriter类的基类该类包含了WriteNodeWriteStringWriteAttributesWriteStartElement以及WriteEndElement等一系列写XML文档的方法其中有些方法是成对出现的比如你要写入一个元素你首先得调用WriteStartElement方法接着写入实际内容最后是调用WriteEndElement方法以表示结束该类还包含了WriteStateXmlLang和XmlSpace等属性其中WriteState属性表明了写的状态因为XmlWriter类包含了很多写XML文档的方法所以这里只是介绍最主要的几种下面我们通过其子类XmlTextWriter类来说明如何写XML文档
首先我们要创建一个XmlTextWriter类的实例对象该类的构造函数XmlTextWriter有三种重载形式其参数分别为一个字符串一个流对象和一个TextWriter对象这里我们运用字符串的参数形式该字符串就指明了所要创建的XML文件的位置方法如下
XmlTextWriter textWriter = New XmlTextWriter(C:\\myXmFilexml null);
在创建完对象后
我们调用WriterStartDocument方法开始写XML文档
在完成写工作后
就调用WriteEndDocument结束写过程并调用Close方法将它关闭
在写的过程中
我们可以调用WriteComment方法来添加说明
通过调用WriteString方法来添加一个字符串
通过调用WriteStartElement和WriteEndElement方法对来添加一个元素
通过调用WriteStartAttribute和WriteEndAttribute方法对来添加一个属性
我们还可以通过调用WriteNode方法来添加整一个节点
其它的写的方法还包括WriteProcessingInstruction和WriteDocType等等
下面的实例就是介绍如何具体运用这些方法来完成XML文档的写工作的
[] [] []