嘿,大家想象我得到一个像这样的xml结构的变量:
<Maintest>
<test text="qwe" value="123"></test>
<test text="qwer" value="1234"></test>
<teste text="qwert" value="12345"></teste>
</Maintest>
我已经可以在其上添加一行但是如果用户想要删除项目测试“qwer”,其值为“1234”我该怎么办? 谢谢你们阅读我的帖子。
答案 0 :(得分:1)
如果使用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>"
);
然后你可以使用适用于集合的一组很好的System.Xml.Linq
扩展方法:
doc.Descendants("test").Where(x => (string)x.Attribute("text") == "qwer").Remove();
或者您可以使用XPath-based query使用魔术单线程(需要包含System.Xml.XPath
命名空间):
doc.XPathSelectElements("//test[@text='qwer']").Remove();
答案 1 :(得分:0)
你可以使用下面提到的代码:
xdoc.Elements("Maintest").Elements("test").Where(
elemet => elemet.Attribute("text").Value == "qwert")
.ToList().ForEach(i => i.Remove());