如何根据属性值删除XML元素

时间:2018-08-22 15:21:07

标签: c# xml linq-to-xml

我很难全神贯注于如何执行此操作,并且由于这是我第一次使用xml做任何事情,所以我认为我应该请更有经验的人节省一些时间。

我知道如何删除元素。我已经将xml加载到XDocument中。我知道如何读取元素,并获取元素的属性值。我只是不知道如何根据其属性的值删除多个相同类型的元素。这是我要使用的XML的示例。我想用type="SetName"

删除所有效果元素
<tech name="Name" type="Normal">
    <displaynameid>11166</displaynameid>
    <effects>
        <effect type="TextOutput"></effect>
        <effect type="Data"></effect>
        <effect type="Data"></effect>
        <effect type="SetName"></effect>
        <effect type="SetName"></effect>
        <effect type="Data"></effect>
        <effect type="SetName"></effect>
        <effect type="SetName"></effect>
        <effect type="SetName"></effect>
    </effects>
</tech>

1 个答案:

答案 0 :(得分:0)

这不是您问题的答案,因为您的问题太抽象了。但是,由于这将是一个很长的评论,因此我将其写为答案。

让我们逐步解决您的问题。

如果您不知道如何在c#中读取xml,则可以阅读有关XElementXmlReader

的信息。

如果您不知道如何读取xml元素,请在Google上搜索“遍历xml c#”之类的内容

如果您不知道如何读取元素属性,则XElement具有Attributes属性,该属性返回XAttribute的集合,该集合具有属性Value

如果您不知道如何删除子元素,请参见以下链接How to delete specific nodes from an XElement?