<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>
如果标题等于“主题”
,我想删除列节点(from node in xdoc.Descendants("column") select node).ToList().ForEach(x=>x.Remove());
仅当标题与“主题”匹配时才尝试选择节点。
提前致谢。
答案 0 :(得分:5)
我认为,一个简单的XPath可以帮助你
xdoc.XPathSelectElement("//column[heading='Subject']").Remove();
PS:不要忘记使用System.Xml.XPath包含;
答案 1 :(得分:3)
您可以添加简单的where
子句,仅过滤具有子<column>
等于<heading>
的{{1}}元素:
"Subject"
或者使用方法语法:
(from node in xdoc.Descendants("column")
where (string)node.Element("heading") == "Subject"
select node
).Remove();