[转载]C# Xml的使用学习(一)

本文属于转载,原文地址请点击

XML

可扩展标记语言,有着严格的格式要求,要求元素是一对对显示的,通用性比较高。对于一些配置文件需要本地存储的,可以用它来代替数据库。但有一个缺点,就是在加载XML文件的时候是会把整个文件加载进内存之中。流模式很好的解决了这个问题,在对XML文件访问采用流模式,任何时候在内存中只有当前接口,不足的地方是它是只读的,仅向前的,不能再文档中去向后编辑增加。

<?xml version="1.0" encoding="UTF-8"?>
<!—下面是学生名单-->
<StudentList>
  <Student id="1">
    <Name>Getsu</Name>
    <Sex></Sex>
  </Student>
</StudentList>
  1. 文档声明

    <?xml version=”1.0” encoding=”UTF-8”?>
    ?xml标记说明它是一个XML文档,Version为版本号

  2. 注释

    <!—下面是学生名单-->
    注释的风格和html,WPF类似,使用注释时应该注意。

    1. 注释不应该出现在XML声明之前
    2. 注释不能出现”–”字符,如<!-- 下面是学生--名单>
    3. 注释不可以嵌套
  3. 根元素

    <StudentList>... </StudentList>
    每个文档必须有一个根元素

  4. 元素

    元素是XML中用来定义数据的一个基本单位,元素是由标记要定义的,同时分为非空标记和空标记

    1. 非空标记
      <Student id="1">
      <Name>Getsu</Name>
      <Sex>男</Sex>
      </Student>
    2. 空标记
      <Student id="1"></Student>


    XML结构列表

标记描述
XmlDocumentXml文档
XmlNodeXML中单个的节点,如<Student>
XmlAttributeXML元素中的属性
XmlText表示元素或属性的文本内容
XmlElement最小元素,如<Name>Getsu</Name>
XmlComment表示XML注释的内容
XmlDeclarationXML文档第一行的声明
XML文档的创建
//创建一个XML文档对象
XmlDocument _doc = new XmlDocument();

// 声明XML头部信息
XmlDeclaration _dec = _doc.CreateXmlDeclaration("1.0", "UTF-8", null);

//添加进_doc对象的子节点
_doc.AppendChild(_dec);

//创建根节点
XmlElement root = _doc.CreateElement("StudentList");
_doc.AppendChild(root);

//创建根节点下的子节点
XmlElement student = _doc.CreateElement("Student");
//设置子节点属性
student.SetAttribute("id","1");

//子节点下再创建标记
XmlElement studentName = _doc.CreateElement("Name");
//设置内容
XmlText xmlText = _doc.CreateTextNode("Getsu");
//将内容添加到标记中
studentName.AppendChild(xmlText);

XmlElement studentSex = _doc.CreateElement("Sex");
studentSex.AppendChild(_doc.CreateTextNode("男"));


//将StudentName添加到Student节点下
student.AppendChild(studentName);
//将StudentSex添加到Student节点下
student.AppendChild(studentSex);

//将Student添加到根节点下
root.AppendChild(student);

//保存内容
_doc.Save("StudentList.xml");
XML文档的读取
XmlDocument doc = new XmlDocument();

// 加载XML文件
doc.Load("StudentList.xml");

// 获取根节点
XmlElement root = doc.DocumentElement;

//获取子节点
XmlNodeList students = root.GetElementsByTagName("Student");

//使用foreach读出集合
foreach(var student in students )
{
    string id = ((XmlElement)student).GetAttribute("id");
    string name = ((XmlElement)student).GetElementsByTagName("Name")[0].InnerText;
    string sex = ((XmlElement)student).GetElementsByTagName("Sex")[0].InnerText;

    Console.WriteLine("ID = {0}, name = {1}, sex = {2}", id, name, sex);
}
XML文件的增加

先读取文件,在进行类似于文件的创建那部分操作

// 读取XML文件
XmlDocument doc = new XmlDocument();
doc.Load("StudentList.xml");
//获得根节点
XmlElement root = doc.DocumentElement;

// 创建需要增加的部分
XmlElement student = doc.CreateElement("Student");
student.SetAttribute("id","2");
XmlElement stuName = doc.CreateElement("Name");
stuName.AppendChild(doc.CreateTextNode("Yyy"));
XmlElement stuSex = doc.CreateElement("Sex");
stuSex.AppendChild(doc.CreateTextNode("女"));
student.AppendChild(stuName);
student.AppendChild(stuSex);
root.AppendChild(student);

//保存
doc.Save("StudentList.xml");
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值