2016-09-28 100 views
-1

我创建了一个treeview xml程序,允许您管理树xml。我需要一个能够按名称和路径删除项目的程序功能。删除具有相同路径和名称的节点

例如:

<Main> 
<Set> 
    <MId>1</MId> 
    <RName> 
     <MetaData> 
      <PrdctName> 
       Test 1 
      </PrdctName> 
     </MetaData> 
    </RName> 
</Set> 
<Set/> 
<Set/> 
<Set> 
    <MId>2</MId> 
    <RName> 
     <MetaData> 
      <PrdctName> 
       Test 1 
      </PrdctName> 
     </MetaData> 
    </RName> 
</Set> 
</Main> 

,我想通过名称以及与此相同的路径中的所有XML文件删除“PrdctName”。任何人都可以帮助我?

编辑:我尝试类似的东西,但是这并不工作:

void deletebytag(TreeNodeCollection nodes) 
    { 
     List<TreeNode> nodee = new List<TreeNode>(); 

     foreach (TreeNode node in nodes) 
     { 
      if (node.Name == "au_id") 
      { 
       nodee.Add(node); 
      } 
      else 
      { 

       deletebytag(node.Nodes); 

      } 
     } 
     foreach (TreeNode node in nodee) 
     { 
      nodes.Remove(node); 

     } 

    } 

回答

-1

像所有的列表对象集合,你需要从过去的项目中删除,以第一所以索引不会搞的一团糟。我使用了XML Liinq下面

​​
+0

谢谢,但我需要一个功能及在我的应用我使用的唯一XmlDocuments库 –

+0

LINQ的XML是网络库的一部分,而不是一个第三部分的应用程序。通过元素枚举比旧的xmlDocument库更有效。 – jdweng

相关问题