xml语法
- 必须有开始和结束标签
- 区分大小写
- 必须有根元素
- 注释用
下面创建一个StudentsInfo.xml文件进行测试
<?xml version = '1.0' encoding='UTF-8'?>
<Students>
<student>
<Name ID="1001">哈哈</Name>
<Class>1</Class>
</student>
<student>
<Name ID="1002">啊啊</Name>
<Class>3</Class>
</student>
<student>
<Name ID="1003">xixi</Name>
<Class>1</Class>
</student>
</Students>
创建Model
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
public string Class { get; set; }
public override string ToString()
{
return string.Format("ID:{0},Name:{1},Class:{2}", ID, Name, Class);
}
}
读取解析xml
//创建xmlDocument对象
XmlDocument xmlDocument = new XmlDocument();
//加载xml文档
xmlDocument.Load("StudentsInfo.xml");
//获取根节点(Students)
XmlNode rootNode = xmlDocument.SelectSingleNode("/Students");
//获取根节点下面子节点的集合(所有student)
XmlNodeList stuNodeList = rootNode.ChildNodes;
List<Student> stuList = new List<Student>();
foreach (XmlNode stuNode in stuNodeList)
{
Student stu = new Student();
//获取student下面的所有节点(ID,Name,Class)
XmlNodeList fieldNodeList = stuNode.ChildNodes;
foreach (XmlNode fieldNode in fieldNodeList)
{
if (fieldNode.Name == "Name")
{
stu.Name = fieldNode.InnerText;
stu.ID = int.Parse(fieldNode.Attributes["ID"].Value);
}
else if (fieldNode.Name == "Class")
{
stu.Class = fieldNode.InnerText;
}
}
stuList.Add(stu);
}
//输出
foreach (var stu in stuList)
{
Console.WriteLine(stu.ToString());
}
也可以通过XmlElement 来解析Sutdent信息
foreach (XmlNode stuNode in stuNodeList)
{
Student stu = new Student();
XmlElement nameEle = stuNode["Name"];
stu.Name = nameEle.InnerText;
stu.ID = int.Parse(nameEle.Attributes["ID"].Value);
XmlElement classEle = stuNode["Class"];
stu.Class = classEle.InnerText;
stuList.Add(stu);
}
输出
修改xml
//创建xmlDocument对象
XmlDocument xmlDocument = new XmlDocument();
//加载xml文档
xmlDocument.Load("StudentsInfo.xml");
//获取根节点(Student)
XmlNode rootNode = xmlDocument.FirstChild;
//获取根节点下面子节点的集合(所有student)
XmlNodeList stuNodeList = rootNode.ChildNodes;
List<Student> stuList = new List<Student>();
XmlElement nameEle = stuNodeList[0]["Name"];
//修改节点值
nameEle.InnerText = "哈哈2";
//修改属性值
nameEle.SetAttribute("ID", "1005");
//保存
xmlDocument.Save("StudentsInfo.xml");
修改之后记得保存Save
创建xml文件
//创建xmlDocument对象
XmlDocument xmlDoc = new XmlDocument();
//创建根节点
xmlDoc.LoadXml("<?xml version = '1.0' encoding='UTF-8'?><Students></Students>");
//获取Students节点
XmlElement Students = xmlDoc.DocumentElement;
//创建学生节点student
XmlElement student = xmlDoc.CreateElement("student");
//创建Name
XmlElement stuName = xmlDoc.CreateElement("Name");
stuName.InnerText = "哈哈";
stuName.SetAttribute("ID", "1001");
student.AppendChild(stuName);
//创建Class
XmlElement stuClass = xmlDoc.CreateElement("Class");
stuClass.InnerText = "1";
student.AppendChild(stuClass);
Students.AppendChild(student);
//保存
xmlDoc.Save("StudentsInfo.xml");
xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Students>
<student>
<Name ID="1001">哈哈</Name>
<Class>1</Class>
</student>
</Students>