如何使用C#从XML节点列表中删除节点

时间:2013-01-08 04:36:56

标签: c# xmlnode xmlnodelist

enter image description here我有一个XmlNodeList xnlSubParam

              XmlDocument xDoc = new XmlDocument();
              xDoc.Load(somexml);
              XmlNode xnParamList = xDoc.SelectSingleNode("//tag");
              XmlNodeList   xnlSubParam = xnParamList.SelectNodes("subparam");

现在xnlSubParam将包含节点列表

如何获取Node属性以及如何从列表中删除节点。我想删除子参数列表..来自xnlSubparam如何做到这一点?                  在我的xml中,我有一个内部命名的元素

              <subparam name="test1" displayname="Test1" type="BOOLEAN"/> 
              <subparam name="test2" displayname="Test2" type="BOOLEAN"/>
              <subparam name="test3" displayname="Test3" type="BOOLEAN"/>

enter image description here

1 个答案:

答案 0 :(得分:4)

我不知道有任何改变XmlNodeList本身的方法。我建议您将节点复制到List<XmlNode>,然后您可以按照正常方式进行变更:

List<XmlNode> nodes = xnlSubParam.Cast<XmlNode>().ToList();
// Now work with nodes

要使用这些LINQ方法,您需要using指令:

using System.Linq;

当然,这仅适用于.NET 3.5及更高版本(除非您使用的是LINQBridge或类似的东西)。

请注意,我个人在整个过程中使用LINQ to XML:

var doc = XDocument.Load(somexml);
var nodes = doc.Descendants("tag")
               .First()
               .Elements("subparam")
               .ToList();
相关问题