【问题标题】:Adding and removing XDocument elements and their childs with LINQ使用 LINQ 添加和删除 XDocument 元素及其子元素
【发布时间】:2013-11-01 11:10:40
【问题描述】:

我一直在编写一个使用 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 中读取数据,并解析不同的信息。但是我不知道如何添加或删除元素(我要添加的元素是&lt;employee&gt;,其中包含名称等所有元素。有人可以指出我如何做到这一点的正确方向吗?

【问题讨论】:

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


【解决方案1】:

向 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);

【讨论】:

  • 删除元素怎么样?我将废弃id 属性并使用name 元素来查看要删除的元素。有没有办法找到具有特定名称的元素并将其删除? (删除employee元素)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多