【C#从入门到遛弯】第十五章 · XML文件介绍&节点|属性的增删改查

XML文件介绍

类似html

大家约定俗成的一种文件存储结构。

首先请出我们的xml文件☞ 向阳小学名单.xml

<?xml version="1.0" encoding="UTF-8"?>

<Root>
    <body>
        <school name="向阳小学">
            <grade id="1" name="一年级">
                <room rid="1" name="一班">
                    <student sid = "1101" sex = "男">赵一</student>
                    <student sid = "1102" sex = "女">赵二</student>
                    <student sid = "1103" sex = "女">赵三</student>
                    <student sid = "1104" sex = "男">赵四</student>
                </room>
                <room rid="2" name="二班">
                    <student sid = "1201" sex = "女">钱一</student>
                    <student sid = "1202" sex = "男">钱二</student>
                    <student sid = "1203" sex = "男">钱三</student>
                </room>
            </grade>
            <grade id="2" name="二年级">
                <room rid="1" name="一班">
                    <student sid = "2101" sex = "男">孙一</student>
                    <student sid = "2102" sex = "女">孙二</student>
                    <student sid = "2103" sex = "男">孙三</student>
                </room>
                <room rid="2" name="二班">
                    <student sid = "2201" sex = "男">赵一</student>
                    <student sid = "2202" sex = "女">赵二</student>
                    <student sid = "2203" sex = "男">赵三</student>
                    <student sid = "2204" sex = "女">赵四</student>
                </room>
            </grade>
        </school>
    </body>
</Root>

c#有一套读取xml文件的方法

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(“向阳小学.xml”);

xmlDoc.Save(“向阳小学.xml”);

节点的增加&属性的增加

这里我们创建一个新班级

<room rid="3" name="三班"></room>

示范:节点的创建、属性的添加

XElement newRoom = new XElement("room");
XAttribute rid = new XAttribute("rid", "3");
XAttribute name = new XAttribute("name", "三班");
newRoom.Attributes().Append(rid).Append(name);

上述四步骤可以一次性创建包含属性的节点

创建一个新同学<student sid = "1106" sex = "男">赵六</student>

XElement newStudent2 = new XElement("student", "赵六", new XAttribute("sid", "1106"), new XAttribute("sex", "男"));

新班级下添加新同学
结构变成

<room rid="3" name="三班">
        <student sid = "1106" sex = "男">赵六</student>
</room>

newRoom.Add(newStudent2);

节点的获取&属性的获取

通过id获取,id必须唯一(和html类似,与jsp相似的两种获取节点的方式)

XmlElement grade = xmlDoc.GetElementById("1");

grade 获取数据为 grade id="1" name="一年级">...</grade>
StudentList 获取的是所有学生的节点集合

通过节点名称获取

XmlNodeList StudentList = xmlDoc.GetElementsByTagName("student");

当你知道XML文件结构的时候
1.节点唯一的时候使用SelectSingleNode就可以获取 <school name="向阳小学">...</school>
2.这里的StudentList2和通过节点名称获取StudentList获取的节点集合一模一样

XmlNode school = xmlDoc.DocumentElement.SelectSingleNode("body/school");
var roomList = xmlDoc.DocumentElement.SelectNodes("body/school/grade/room");

XmlNodeList StudentList2 = xmlDoc.DocumentElement.SelectNodes("body/school/grade/room/student");
//获取节点集合下每个节点
foreach (XmlElement student in StudentList)
{

}

获取节点属性 获取文本
student 对应节点 <student sid = "2103" sex = "男">孙三</student>

//所以这里sid:2103   name:孙三
string sid = student.GetAttribute("sid");
string name = student.InnerText;

节点的修改&属性的修改

节点不修改,你想修改属性那就是属性修改

反正你通过添加节点就可以实现:)

 

student内容: <student sid = "2103" sex = "男">孙三</student>
修改之后为:<student sid = "1105" sex = "男">赵明</student>

student.SetAttribute("sid", "1105");
student.InnerText = "赵明";

//注意必须保存,不然文件修改不会生效
xmlDoc.Save("向阳小学名单.xml");

 

节点的删除&属性的删除

父节点删除子节点    节点删除属性  记得保存:)

room.RemoveChild(student);
student.RemoveAttribute("sex");
xmlDoc.Save("向阳小学名单.xml");

 

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值