C#写XML文件

XML文件

XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然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 version="1.0" encoding="UTF-8"?>
<ROOT>
  <MEMBERLIST>
    <MEMBER AGE="&gt;=29" SEX="MALE">
      <NAME>张三</NAME>
      <NAME>李四</NAME>
    </MEMBER>
    <MEMBER AGE="&gt;=35" SEX="MALE">
      <NAME>王五</NAME>
      <NAME>赵六</NAME>
    </MEMBER>
  </MEMBERLIST>
</ROOT>

我们可以发现在xml文件中大小于号会出现报错,主要原因是在xml文件中大小于号会与标签的尖括号冲突,因此需要使用转义字符来替代,对应的转义字符表如下:
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值