本文將會涉及3個面向的內容:
1.存取XML檔案
2. XML文檔物件模式
3. XML和DataSet
這裡我們先介紹操作XML檔案的兩個物件:XmlTextReader和XmlTextWriter
開啟和讀取XmlTextReader和XmlTextWriter
XmlTextReader reader = new XmlTextReader("sample.xml");
while(reader.Read()) { //在这里填写对于XML的操作代码 }
while(reader.Read()) 2{ 3 switch(reader.NodeType) 4 { 5 case XmlNodeType.Element: //当前节点是一个元素 6 Console.Write("<" + reader.Name); 7 while(reader.MoveToNextAttribute()) //按照顺序读取下一个属性 8 Console.Write(" " + reader.Name + "='" + reader.Value + "'"); 9 Console.Write(">"); 10 break; 11 case XmlNodeType.DocumentType: //XML文件的类型声明 12 Console.WriteLine(reader.NodeType + "<" + reader.Name + ">" + reader.Value); 13 break; 14 …… 15 } 16 }
XmlTextReader#的NodeType#的取值 |
|
##類型 |
#說明 |
All |
所有節點 |
#Attribute |
##一個屬性 |
| CDATA | #轉義那些會被看成標記語言(如HTML)的文字 |
| Comment | 使用 分隔的 |
| Document | XML資料樹的根節點 |
| ##XML資料樹的根節點 | ##DocumentType |
文件的類型聲明,即 |
Element |
一個元素,通常是XML檔案中的實際資料 |
#EndTag |
元素的結束位置 |
None |
不是節點 |
Text |
傳回元素的文字內容 |
XMLDeclaration |
我们假定要写入的XML文件在C盘根目录下:
XmlTextWriter writer = new XmlTextWriter("C:\\sample2.xml",null);
在这里如果不想把数据写入文件,而只是想在命令窗口显示,则可以把“Console.Out”作为参数传递给构造器,此时应把上述语句改为:
XmlTextWriter writer = new XmlTextWriter(Console.Out);
下面我们介绍一下写入XML文件数据的一些常用方法:
XmlTextWriter的常用方法 |
||
方法 |
说明 |
用法 |
WriteStartDocument |
写XML声明部分,即“ ” |
writer.WriteStartDocument(); |
WriteEndDocument |
使没有闭合元素闭合 |
writer.WriteEndDocument(); |
WriteDocType |
写DOCTYPE声明 |
writer.WriteDocType("sample2",null,null," "); |
WriteStartElement |
写元素的开始标志 |
writer.WriteStartElement("sample2"); |
WriteEndElement |
写元素的结束标志 |
writer.WriteEndElement(); |
WriteString |
写入字符串 |
writer.WriteString("Pride And Prejudice"); |
WriteCData |
写CDATA块,即写入的文字在…间 |
writer.WriteCData("Price 15% off!!"); |
WriteRaw |
手工写入一行,不作任何处理 |
writer.WriteRaw("this & that"); |
WriteEntityRef |
写入实体引用,即前面加“&”后面加“;” |
writer.WriteEntityRef("h"); |
WriteProcessingInstruction |
写入处理指令,即前面加“ ” |
writer.WriteProcessingInstruction("xml-stylesheet",PItext); |
WriteComment |
写入注释,自动加入注释标志“ |
|