如果内部标记在C#中使用Linq匹配值,则删除XML节点

kha*_*pur 2 c# xml linq

<column>
    <format>boolicon</format>
    <heading>Attachment</heading>
    <prop>urn:schemas:httpmail:hasattachment</prop>
    <type>boolean</type>
    <bitmap>1</bitmap>
    <width>10</width>
    <style>padding-left:3px;text-align:center</style>
    <editable>0</editable>
    <displayformat>3</displayformat>
</column>
<column>
    <heading>From</heading>
    <prop>urn:schemas:httpmail:fromname</prop>
    <type>string</type>
    <width>68</width>
    <style>padding-left:3px;text-align:left</style>
    <editable>0</editable>
    <displayformat>1</displayformat>
</column>
<column>
    <heading>Subject</heading>
    <prop>urn:schemas:httpmail:subject</prop>
    <type>string</type>
    <width>326</width>
    <style>padding-left:3px;text-align:left</style>
    <editable>1</editable>
</column>
Run Code Online (Sandbox Code Playgroud)

如果标题等于"主题",我想删除列节点

(from node in xdoc.Descendants("column") select node).ToList().ForEach(x=>x.Remove());
Run Code Online (Sandbox Code Playgroud)

仅当标题与"主题"匹配时才尝试选择节点.

提前致谢.

EZI*_*EZI 5

我想,一个简单的XPath可以帮助你

xdoc.XPathSelectElement("//column[heading='Subject']").Remove();
Run Code Online (Sandbox Code Playgroud)

PS:不要忘记包含使用System.Xml.XPath;