删除xml文件中的行

时间:2014-05-19 08:38:52

标签: c# xml

嘿,大家想象我得到一个像这样的xml结构的变量:

<Maintest>
   <test text="qwe" value="123"></test>
   <test text="qwer" value="1234"></test>
   <teste text="qwert" value="12345"></teste>
</Maintest>

我已经可以在其上添加一行但是如果用户想要删除项目测试“qwer”,其值为“1234”我该怎么办? 谢谢你们阅读我的帖子。

2 个答案:

答案 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());