c# - LINQ:根据属性值从 XML 中删除元素?

标签 c# xml linq linq-to-xml

如何根据匹配的属性值删除 xml 中的任何元素?

这是我的 XML:

<Projects>
    <Project serverUrl="tcp://xyz1:xxx/sdfsdf.rem" projectName="project1" />
    <Project serverUrl="tcp://xyz2:xxx/sdfsdf.rem" projectName="project2" />
    <Project serverUrl="tcp://xyz3:xxx/sdfsdf.rem" projectName="project3" />
    <Project serverUrl="tcp://xyz4:xxx/sdfsdf.rem" projectName="project4" />
    <Project serverUrl="tcp://xyz5:xxx/sdfsdf.rem" projectName="project5" />
    <Project serverUrl="tcp://xyz6:xxx/sdfsdf.rem" projectName="project6" />
   </Projects>

我正在使用以下 LINQ 查询:

var remove = from elemet in xdoc.Elements("Projects").Elements("Project")
                                 where elemet.Attribute("projectName").Value == "project1"
                                 select elemet.Parent.Remove();

我在选择为时遇到编译时错误:

The type of expression in select clause is Incorrect

编辑答案: 这个对我有用。谢谢大家

var xElement = (from elemet in xdoc.Elements("Projects").Elements("Project")
                            where elemet.Attribute("projectName").Value == foundProject
                            select elemet);
            xElement.Remove();

最佳答案

Remove 是一个 (void) 方法调用,而不是一个可以返回值的函数。你可能想要这样的东西:

var elementsToRemove = from elemet in xdoc.Elements("Projects").Elements("Project")
                       where elemet.Attribute("projectName").Value == "project1"
                       select elemet;

foreach (var e in elementsToRemove)
    e.Remove();

LINQ 是一种查询 语言,它(主要)用于返回 某些内容。对这些元素执行操作通常是一个单独的步骤。

关于c# - LINQ:根据属性值从 XML 中删除元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5004481/

相关文章:

c# - RestSharp 响应错误 : "Only one usage of each socket address (protocol/network address/port) is normally permitted"

mysql - 如何从 mysql 中的 xml 列中读取值?

ruby-on-rails - 使用 nokogiri 更新节点打开 xml 文件并保存

Java - 找不到 hibernate.cfg.xml 文件

c# - 在 C# 中使函数非阻塞/异步的简单方法?

c# - 您可以使用 C# 线程同步以原子方式发出信号并等待吗?

c# - 避免在 LINQ 查询中双重控制搜索

c# - 使用分隔符将 List<List<String>> 连接成单个字符串

c# - 在 C# 中,如何按尾数对 double 列表进行排序?

c# - 将任意 json 响应转换为 "things"列表