この記事では 3 つの側面について説明します:
1. XML ファイルにアクセスする
2. XML ドキュメント オブジェクト モデル
3. XML と DataSet
ここでは、XmlTextRead を操作する 2 つのオブジェクトをまず紹介します。 er と XmlTextWriter
Xml ファイルを開いて読み取るために使用されるオブジェクトは、XmlTextReader オブジェクトです。次の例では、プログラムと同じパスにあるサンプル ファイル sample.xml
XmlTextReader reader = new XmlTextReader("sample.xml");
を開き、その Read メソッドを通じて 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 }
3行目からはNodeType属性に基づいてノードの種類を判断し、ノードの種類に応じて異なる処理を行っています。
次の表に、一般的に使用されるノード タイプをいくつか示します。
NodeType/ | ||||||||||||||||||||||||||||||||||||||
すべてのノード | Attribute | |||||||||||||||||||||||||||||||||||||
CDATA | ||||||||||||||||||||||||||||||||||||||
コメント | ||||||||||||||||||||||||||||||||||||||
ドキュメント | ||||||||||||||||||||||||||||||||||||||
DocumentTypeドキュメントの型宣言、つまり & lt;!DOCTYPE …>Tag | ||||||||||||||||||||||||||||||||||||||
Element | 要素、通常はXML ファイル内の実際のデータ | |||||||||||||||||||||||||||||||||||||
EndTag | 要素の終了位置 | |||||||||||||||||||||||||||||||||||||
なし | はノードではありません | |||||||||||||||||||||||||||||||||||||
テキスト | 要素 | |||||||||||||||||||||||||||||||||||||
XMLDeclaration | XML宣言ノードのテキストコンテンツを返します。例: | |||||||||||||||||||||||||||||||||||||
在进行写入XML文件时我们使用的XmlTextWriter类,它是XmlWriter的子类,速度快且不使用缓存,但是同XmlTextReader一样,在写入XML文件时只能向前。 我们假定要写入的XML文件在C盘根目录下: XmlTextWriter writer = new XmlTextWriter("C:\\sample2.xml",null); ログイン後にコピー 在这里如果不想把数据写入文件,而只是想在命令窗口显示,则可以把“Console.Out”作为参数传递给构造器,此时应把上述语句改为: XmlTextWriter writer = new XmlTextWriter(Console.Out); ログイン後にコピー 下面我们介绍一下写入XML文件数据的一些常用方法:
|