【问题标题】:How to store & retrieve specific part of XML tree?如何存储和检索 XML 树的特定部分?
【发布时间】:2012-02-02 18:18:12
【问题描述】:

我有一个绑定到 XML 文档TreeView。每个 TreeViewItem 都有一个 CheckBox(类似于 Windows 目录树,但每个项目内都有一个复选框)。

例如对于这棵树:

我需要保存所选项目从根到叶(黄色项目)的路径,并从原始树中检索此路径。

那么存储检索这个 XML 树的检查路径的最佳解决方案是什么?

请注意,我也需要比较这条路径!

【问题讨论】:

    标签: c# wpf xml linq-to-xml


    【解决方案1】:

    要使用 XmlDocument 选择节点,请查看 SelectSingleNode

    【讨论】:

    • 我保存了原始的XML文件,需要保存selectedItems的路径。并从这两个参数中重新生成被盯着的 Xml。
    • 我更新了我的答案让我知道这是否是您正在寻找的如果不是我会提供更好的解决方案..谢谢
    【解决方案2】:

    如果你想通过 XPATH 来做,你可以尝试这样的事情,我希望这就是你所说的......

    string xpath = null;
    XmlNode configNode = configDom.DocumentElement;
    // collect selected nodes in node list
    XmlNodeList nodeList =
    configNode.SelectNodes(@"//*[@status='checked']");
    
    //MessageBox.Show(Convert.ToString(nodeList.Count));
    
    // loop through nodelist
    foreach(XmlNode myNode in nodeList)
    {
    xpath = GetPathFromNode(myNode); // get node path
    xpath = xpath + "\\" + myNode.InnerText.ToString(); // complete path
    string
    }
    

    【讨论】:

    • 我需要存储和检索到 selectedItem 的路径!
    • 当您说路径时,您的意思是文件路径...??请澄清
    • 谢谢。但我需要基于原始 xml 架构创建和存储一个新的 xml,但只包含选定的项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多