【问题标题】:Find xml node based upon selection in treeview根据树视图中的选择查找 xml 节点
【发布时间】:2016-11-25 16:10:05
【问题描述】:

在我当前的项目(winform)中,我正在使用 xml 提供树视图。 xml 是这样构建的:

<Root>
  <ns code="NS" description=" - New">
    <someName code="5M" description=" - some 5M">
      <entry1 code="TN" description=" - some description 1" />
      <entry2 code="TO" description=" - some description 2" />
    </someName>
	<someOtherName code="6M" description=" - some 6M">
		<entry1 code="TN" description=" - some description 1" />
		<entry2 code="TO" description=" - some description 2" />
	</someOtherName>
  </ns>
</Root>

我根据代码和描述填充我的树视图,因此树视图如下所示:

但现在我希望能够根据树视图中选定的节点将节点添加到 xml。

现在我想知道,是否有可能根据选定的 Treenode(即基于非唯一属性)获取 xmlNode。

实现这一目标的最佳做法是什么?

【问题讨论】:

    标签: c# xml treeview


    【解决方案1】:

    您可以使用所选树节点的属性“FullPath”:

      private void trvAcsConfig_AfterSelect(object sender, TreeViewEventArgs e)
        {
            try
            {
                //get selected tree node
                TreeNode selectedTreeNOde = ((TreeView)sender).SelectedNode;
    
                string fullPath = "/" + selectedTreeNOde.FullPath.Replace("\\", "/");
    
                //selected tree node is an attribute, comment,... 
                if (selectedTreeNOde.Nodes.Count == 0)
                    fullPath = fullPath.Substring(0, fullPath.LastIndexOf('/'));
    
    
                XmlNodeList nodes = AcsConfig.ConfigXmlDocument.SelectNodes(fullPath);
    
                Console.WriteLine(selectedTreeNOde.Name);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2014-08-12
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多