定义:,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
XML语法规范: 标签(Tag)、嵌套(Nest)、属性(Attribute) [标签闭合、属性双引号、大小写敏感]
XML结构:父节点、子节点、兄弟节点
常见方法:DOM(文档对象模型)、Sax(事件驱动、XmlTextReader)、XmlSerializer(序列化)、Linq to XML
常用类型:XElement、XDocument、XAttribute
2、使用代码编写XML文件
[1]、注意:(1)、需要.Net Framework 3.5版本才能使用XDocument对象。
(2)、XDOcument类相比于XmlDocument类,配合Linq使用更方便
[2]、创建XML文档:
new XDocument对象
创建一个根节点XElement:构造方法中定义节点名字
加到XML文档中:Add() 方法
文档保存:Save() 方法
添加属性:new 一个Attribute、Add上
添加节点:new一个Element、可以设定Value给定值
[3]、读取XML文件
加载文档:XDocument.Load()方法
获取根节点:Root属性
元素签名与值(所以):Name、value属性
获取直接子元素:Element方法与Elements方法
读取属性:Attribute方法与Attributes方法,使用value
获取所以子节点:递归
实例1:
//创建Xdocument对象
XDocument xDoc =
new
XDocument();
//创建一个根节点,定义节点名字Student
XElement xEle =
new
XElement(
"Student"
);
//加载到XML文档
xDoc.Add(xEle);
XAttribute xAttr =
new
XAttribute(
"Id"
,
"101"
);
xEle.Add(xAttr);
//添加节点
XElement xEleName =
new
XElement(
"Name"
,
"dede"
);
XElement xEleAge =
new
XElement(
"Age"
,
"23"
);
XElement xEleGender =
new
XElement(
"Gender"
,
"男"
);
xEle.Add(xEleName,xEleAge,xEleGender);
xEleAge.Value =
"22"
;
//保存文档
xDoc.Save(
@"d:\caoyi.xml"
);
|
*****************输出的XML文档*************************
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<Student Id=
"101"
>
<Name>dede</Name>
<Age>22</Age>
<Gender>男</Gender>
</Student>
*******************************************************
|
//读取XML文档
[3]、XML序列化
把对象序列化存储在本地文件中,using System.Xml.Serialization;,对象标示[Serializable]
实例:
List<Person> perList =
new
List<Person>()
{
new
Person(){ Name=
"张三1"
,Age=19,Gender=
'男'
},
new
Person(){ Name=
"张三2"
,
new
Person(){ Name=
"张三3"
,
new
Person(){ Name=
"张三4"
,
new
Person(){ Name=
"张三5"
,
new
Person(){ Name=
"张三6"
,
};
using
(FileStream file =
new
FileStream(
"xml.xml"
,FileMode.Create,FileAccess.Write))
{
XmlSerializer ser =
new
XmlSerializer(
typeof
(List<Person>));
ser.Serialize(file,perList);
}
|
--------------------------
XmlDocument dom=new XmlDocument();
dom.LoadXml(字符串);
dom.save(文件名);
转载自:http://www.cnblogs.com/dedeyi/archive/2012/07/08/2582005.html
原文链接:https://www.f2er.com/xml/294647.html