Maison > développement back-end > Tutoriel XML/RSS > Exemples de code détaillés pour interpréter et écrire des fichiers XML

Exemples de code détaillés pour interpréter et écrire des fichiers XML

黄舟
Libérer: 2017-03-23 16:41:56
original
2162 Les gens l'ont consulté

Cet article couvrira 3 aspects :
1. Accéder aux fichiers XML
2. Modèle d'objet de document XML
3. XML et DataSet

Ici, nous introduisons d'abord deux objets pour exploiter les fichiers XML : XmlTextReader et XmlTextWriter
L'objet utilisé pour ouvrir et lire les fichiers XML est l'objet XmlTextReader. L'exemple suivant ouvre un exemple de fichier sample.xml

XmlTextReader reader = new XmlTextReader("sample.xml");
Copier après la connexion

dans le même chemin que le programme. Nous pouvons ensuite faciliter automatiquement le fichier XML via sa méthode Read. Exemple :

while(reader.Read())
{
       //在这里填写对于XML的操作代码
}
Copier après la connexion

Regardons un exemple plus compliqué.

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 + "=&#39;" + reader.Value + "&#39;");
 9            Console.Write(">");
10            break;
11        case XmlNodeType.DocumentType:  //XML文件的类型声明
12              Console.WriteLine(reader.NodeType + "<" + reader.Name + ">" + reader.Value);
13            break;
14        ……
15        }
16    }
Copier après la connexion

À partir de la ligne 3, nous jugeons le type de nœud en fonction de l'attribut NodeType, et effectuons différents traitements en fonction des différents types de nœuds.

Le tableau suivant répertorie certains types de nœuds couramment utilisés.

< td width="276">

Description<🎜>

< td width=" 144"><🎜>EndTag<🎜>< td width="144" ><🎜>Aucun<🎜>

XmlTextReaderLa valeur de NodeType

XmlTextReader的NodeType的取值

类型

说明

All

所有节点

Attribute

一个属性

CDATA

转义那些会被看作标记语言(如HTML)的文本

Comment

使用分隔的注释

Document

XML数据树的根节点

DocumentType

文档的类型声明,即标记

Element

一个元素,通常是XML文件中的实际数据

EndTag

元素的结束位置

None

不是节点

Text

返回元素的文本内容

XMLDeclaration

XML声明节点,例如

Type<🎜>

<🎜>Tous<🎜><🎜>Tous les nœuds<🎜>
<🎜> Attribut <🎜><🎜>Un attribut<🎜>
<🎜>CDATA<🎜> < /td><🎜>Texte d'échappement qui serait considéré comme un langage de balisage (tel que HTML)<🎜>
<🎜>Commentaire<🎜><🎜>Utilisez séparés Commentaires<🎜>
<🎜>Document<🎜><🎜>Le nœud racine de l'arborescence de données XML<🎜>
<🎜>DocumentType<🎜> <🎜>La déclaration de type du document, c'est-à-dire la balise <🎜>
<🎜 >Élément<🎜><🎜>Un élément, généralement les données réelles dans le fichier XML<🎜>
<🎜>La position finale de l'élément<🎜>
<🎜>Pas un nœud<🎜>
<🎜> Texte<🎜><🎜>Renvoie le contenu textuel de l'élément<🎜>
<🎜>XMLDeclaration <🎜><🎜>Nœud de déclaration XML, tel que

在进行写入XML文件时我们使用的XmlTextWriter类,它是XmlWriter的子类,速度快且不使用缓存,但是同XmlTextReader一样,在写入XML文件时只能向前。

我们假定要写入的XML文件在C盘根目录下:

XmlTextWriter writer = new XmlTextWriter("C:\\sample2.xml",null);
Copier après la connexion

在这里如果不想把数据写入文件,而只是想在命令窗口显示,则可以把“Console.Out”作为参数传递给构造器,此时应把上述语句改为:

XmlTextWriter writer = new XmlTextWriter(Console.Out);
Copier après la connexion

下面我们介绍一下写入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

写入注释,自动加入注释标志“