使用LINQ添加和删除XDocument元素及其子元素

时间:2013-11-01 11:10:40

标签: c# .net xml linq linq-to-xml

我一直在编写一个使用XDocument编写XML文件的程序。测试程序的结构是:

<SchoolData storeName="mikveIsrael" location="mikve">
    <employee id="1">
        <personalInfo>
            <name>Ilan Berlinbluv</name>
            <zip>58505</zip>
        </personalInfo>
        <employeeInfo>
            <salary>5000</salary>
            <id>1</id>
        </employeeInfo>
    </employee>
    <employee id="2">
        <personalInfo>
            <name>Noam Inbar</name>
            <zip>58504</zip>
        </personalInfo>
        <employeeInfo>
            <salary>4500</salary>
            <id>2</id>
        </employeeInfo>
    </employee>
    <employee id="3">
        <personalInfo>
            <name>Adi Raiten</name>
            <zip>58503</zip>
            </personalInfo>
        <employeeInfo>
            <salary>5000</salary>
            <id>3</id>
        </employeeInfo>
    </employee>
</SchoolData>

到目前为止,我的测试程序将其写入桌面上的Employee.xml。我还可以使用XDocument.Load()从XML读取数据,并解析不同的信息。但是我不知道如何添加或删除元素(我要添加的元素是<employee>,其中包含所有元素,如名称等。有人可以指出我正确的方向如何完成?

1 个答案:

答案 0 :(得分:2)

向XML添加元素非常简单。使用右缩进,您甚至可以在代码中看到XML结构:

XDocument doc = XDocument.Load(fileName);

doc.Root.Add(new XElement("employee", new XAttribute("id", 42),
                 new XElement("personalInfo",
                     new XElement("name", "Arthur Dent"),
                     new XElement("zip", "00000")),
                 new XElement("employeeInfo",
                     new XElement("salary", 0),
                     new XElement("id", 3))));

doc.Save(fileName);