Dieser Artikel behandelt drei Aspekte:
1. Auf XML-Dateien zugreifen
2. XML-Dokumentobjektmodell
3. XML und DataSet
Hier stellen wir zunächst zwei Objekte zum Betreiben von XML-Dateien vor: XmlTextReader und XmlTextWriter
Das zum Öffnen und Lesen von XML-Dateien verwendete Objekt ist das XmlTextReader-Objekt. Das folgende Beispiel öffnet eine Beispieldatei sample.xml
XmlTextReader reader = new XmlTextReader("sample.xml");
im selben Pfad wie das Programm. Dann können wir die XML-Datei automatisch über ihre Read-Methode erleichtern. Beispiel:
while(reader.Read()) { //在这里填写对于XML的操作代码 }
Schauen wir uns ein komplizierteres Beispiel an.
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 }
Ab Zeile 3 beurteilen wir den Knotentyp anhand des NodeType-Attributs und führen je nach Knotentyp unterschiedliche Verarbeitungen durch.
In der folgenden Tabelle sind einige häufig verwendete Knotentypen aufgeführt.
XmlTextReaderDer Wert von NodeType
| |||||||||||||||||||||||||||
Typ<🎜> | < td width="276">|||||||||||||||||||||||||||
<🎜>Alle<🎜> | <🎜>Alle Knoten<🎜> | ||||||||||||||||||||||||||
<🎜> Attribut <🎜> | <🎜>Ein Attribut<🎜> | ||||||||||||||||||||||||||
<🎜>CDATA<🎜> < /td> | <🎜>Escape-Text, der als Auszeichnungssprache (z. B. HTML) angesehen wird<🎜> | ||||||||||||||||||||||||||
<🎜>Kommentar<🎜> | <🎜>Verwenden Sie getrennt Kommentare<🎜> | ||||||||||||||||||||||||||
<🎜>Dokument<🎜> | <🎜>Der Wurzelknoten des XML-Datenbaums<🎜> | ||||||||||||||||||||||||||
<🎜>DocumentType<🎜> | <🎜>Die Typdeklaration des Dokuments, also das -Tag<🎜> | ||||||||||||||||||||||||||
<🎜 >Element<🎜> | <🎜>Ein Element, normalerweise die tatsächlichen Daten in der XML-Datei<🎜> | ||||||||||||||||||||||||||
<🎜>Die Endposition des Elements<🎜> | |||||||||||||||||||||||||||
<🎜>Kein Knoten<🎜> | |||||||||||||||||||||||||||
<🎜>Text<🎜> | <🎜>Gibt den Textinhalt des Elements zurück<🎜> | ||||||||||||||||||||||||||
<🎜>XMLDeclaration <🎜> | <🎜>XML-Deklarationsknoten, z. B. |
在进行写入XML文件时我们使用的XmlTextWriter类,它是XmlWriter的子类,速度快且不使用缓存,但是同XmlTextReader一样,在写入XML文件时只能向前。
我们假定要写入的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 | 写入注释,自动加入注释标志“
Vorheriger Artikel:Detaillierte Einführung in den Beispielcode von vier Methoden zum Parsen von XML
Nächster Artikel:Detaillierte Erläuterung des Beispielcodes für das XML-Konzept der Schemaüberprüfung
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Aktuelle Ausgaben
javascript - Wie erhalte ich den Inhalt in Klammern mithilfe regulärer Ausdrücke in JS?
Aus 1970-01-01 08:00:00
0
0
0
javascript – Eine Zeile Code für den Quellcode von underscore.js schreiben
Aus 1970-01-01 08:00:00
0
0
0
javascript - Woher wissen Sie, dass der Haken des Versprechens nicht geschrieben ist?
Aus 1970-01-01 08:00:00
0
0
0
verwandte Themen
Mehr>
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
|