XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。微软也提供了一系列类库来倒帮助我们在应用程序中存储XML文件。
XmlDocument | 表示 XML 文档。 |
---|---|
XmlElement | 表示一个元素。 |
XmlElement .CreateElement() | 创建一个具有指定名称的元素 |
A.AppendChild(B) | 将指定B的节点添加到A节点的子节点列表的末尾。 |
1: xn 代表一个结点(元素)
2: xn.Name;//这个结点的名称
3: xn.Value;//这个结点的值
4: xn.ChildNodes;//这个结点的所有子结点
5: xn.ParentNode;//这个结点的父结点
1、引用using System.Xml;命名空间。
using System.Xml;
2、定义一个XML文件
XmlDocument xmlDoc = new XmlDocument();
//加入XML的声明段落
3、xml 头部定义并添加到xmlDoc中去
xmlDoc.AppendChild(xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null));
原型 用于定义头部
public virtual XmlDeclaration CreateXmlDeclaration
(
string version,
string encoding,
string standalone
);
// 摘要:创建一个具有指定值的 System.Xml.XmlDeclaration 节点。
// 参数:
// version: 版本必须为“1.0”。
// encoding: 编码方式特性的值。这是当将 System.Xml.XmlDocument 保存到文件或流时使用的编码方式;
因此必须将其设置为 System.Text.Encoding类支持的字符串,否则 System.Xml.XmlDocument.Save(System.String) 失败。
如果这是 null 或 String.Empty,则Save 方法不在 XML 声明上写出编码方式特性,因此将使用默认的编码方式 UTF-8。
注意:如果将 XmlDocument 保存到 System.IO.TextWriter或 System.Xml.XmlTextWriter,则放弃该编码值。
而改用 TextWriter 或 XmlTextWriter 的编码方式。这确保可以使用正确的编码方式读回写出的XML。
//standalone: 该值必须是“yes”或“no”。如果这是 null 或 String.Empty,Save 方法不在 XML 声明上写出独立特性
// 返回结果:新的 XmlDeclaration 节点。
4、加入根元素 并将其添加到xmlDoc文件中 算是一级节点
XmlElement root = xmlDoc.CreateElement("ROOT");
xmlDoc.AppendChild(root);
5、创建子节点memberlist 名称为“MEMBERLIST”
XmlElement memberlist = xmlDoc.CreateElement("MEMBERLIST");
6、建立3个子节点分别是:
变量名为 memberA 的 MEMBER 的{二级节点}
并给memberA 设置具有指定名称的特性的值。
分别是
AGE 字符串类型值:>=29
SEX 字符串类型值:MALE
以及两个{三级节点}
变量名为 zs 的 NAME并设置串联值张三
变量名为 ls 的 NAME并设置串联李四
将两个三级节点“zs”和“ls”添加到二级节点”memberA“下
XmlElement memberA = xmlDoc.CreateElement("MEMBER");
memberA.SetAttribute("AGE", ">=29");
memberA.SetAttribute("SEX", "MALE");
XmlElement zs = xmlDoc.CreateElement("NAME");
zs.InnerText = "张三";
XmlElement ls = xmlDoc.CreateElement("NAME");
ls.InnerText = "李四";
memberA.AppendChild(zs);
memberA.AppendChild(ls);
7、和第六步类似也是建立三级节点两个绑定到二级节点
XmlElement memberB = xmlDoc.CreateElement("MEMBER");
memberB.SetAttribute("AGE", ">=35");
memberB.SetAttribute("SEX", "MALE");
XmlElement ww = xmlDoc.CreateElement("NAME");
ww.InnerText = "王五";
XmlElement zl = xmlDoc.CreateElement("NAME");
zl.InnerText = "赵六";
memberB.AppendChild(ww);
memberB.AppendChild(zl);
8、将二级节点绑定到一级节点”root“上
memberlist.AppendChild(memberA);
memberlist.AppendChild(memberB);
root.AppendChild(memberlist);
9、保存
xmlDoc.Save(@"../../Xml读写/xml");
}
最终结果
张三
李四
王五
赵六
我们可以发现在xml文件中大小于号会出现报错,主要原因是在xml文件中大小于号会与标签的尖括号冲突,因此需要使用转义字符来替代,对应的转义字符表如下: