C# 删除xml文件中的行
大家想象一下,我得到一个xml结构的变量,如下所示:C# 删除xml文件中的行,c#,xml,C#,Xml,大家想象一下,我得到一个xml结构的变量,如下所示: <Maintest> <test text="qwe" value="123"></test> <test text="qwer" value="1234"></test> <teste text="qwert" value="12345"></teste> </Maintest> 我已经可以在上面添加一行了,但是如果用户想
<Maintest>
<test text="qwe" value="123"></test>
<test text="qwer" value="1234"></test>
<teste text="qwert" value="12345"></teste>
</Maintest>
我已经可以在上面添加一行了,但是如果用户想删除带有value=“1234”的项目测试“qwer”,我怎么做?
感谢guy阅读我的帖子。您可以使用下面提到的代码:
xdoc.Elements("Maintest").Elements("test").Where(
elemet => elemet.Attribute("text").Value == "qwert")
.ToList().ForEach(i => i.Remove());
如果使用
System.Xml.Linq
名称空间,则可以创建并实例XDocument:
var doc = XDocument.Parse(@"
<Maintest>
<test text=""qwe"" value=""123""></test>
<test text=""qwer"" value=""1234""></test>
<teste text=""qwert"" value=""12345""></teste>
</Maintest>"
);
或者您可以使用magic one liner使用(需要包括System.Xml.XPath
namespace):
这是行不通的。“test”不是根元素,如果“text”属性不存在,则可能存在异常。
doc.Descendants("test").Where(x => (string)x.Attribute("text") == "qwer").Remove();
doc.XPathSelectElements("//test[@text='qwer']").Remove();