获取选定节点的子计数

Posted

技术标签:

【中文标题】获取选定节点的子计数【英文标题】:Get Child count for selected node 【发布时间】:2014-02-11 20:50:02 【问题描述】:

我尝试检查一个 xml 文件并删除一些属性,我成功了 但我想要一个选项来选择我要删除的那个 所以我想到了一个显示所有属性的列表框 这样我就可以使用他们的 ID 和 Value

当我使用 FOR EACH 语句时,我可以使用 foreach (System.Xml.XmlNode child in xn) 然后我可以使用child.Attributes.Count 来计算属性的数量 然后我可以循环直到我达到这个数字(这就是我删除节点时所做的) 但循环是针对 XML 中的每个节点的 但我想使用它一次只是为了填充列表框 请帮忙 谢谢。

这是示例 XML(无法显示值,抱歉) 我在列表中看到的是属性名称,以红色选择

<VolSurface xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <MTM Currency="" Spot="" ISIN="" Exchange="" EquityName="" CutOff="" ValuationDate="">
        <Maturity ATMFVolatility="" VarSwap="" DividendYieldPercent="" ATMSVolatility="" VolatilitySpread="" DepoRate="" SumOfDividends="" SecLendingRate="" ForwardRate="" TenorDate="" Tenor="">
            <Strike Put="" Call="" Vol="" Strike="" Value=""/>
            <Strike Put="" Call="" Vol="" Strike="" Value=""/>
            <Strike Put="" Call="" Vol="" Strike="" Value=""/>
            <Strike Put="" Call="" Vol="" Strike="" Value=""/>
            <Strike Put="" Call="" Vol="" Strike="" Value=""/>
            <Strike Put="" Call="" Vol="" Strike="" Value=""/>
            <Strike Put="" Call="" Vol="" Strike="" Value=""/>
            <Strike Put="" Call="" Vol="" Strike="" Value=""/>

【问题讨论】:

不清楚您在寻找什么。您能否展示一些示例 XML 和您希望看到的示例? 这两个事件(按钮点击)是如何相互精确连接的?在 button1_click 处理程序中,第二个节点 _Node[1] 的属性被采用了吗?问题出在什么地方? 第一个按钮,我加载文件路径+我想打印属性,稍后我可以使用第二个按钮删除并保存 【参考方案1】:

好的,找到我的答案了!! 而不是选择一个列表,我只需要选择一个节点并使用它的 COUNT

XmlNode _Node = _Doc.SelectSingleNode("/VolSurface/MTM/Maturity");
int _CNode = _Node.Attributes.Count;

在这种情况下,我使用了所有可用的节点(大约有 150 多个节点) 对于每个节点,我都在循环查找属性

XmlNodeList xn = _Doc.SelectNodes("/VolSurface/MTM/Maturity");

无论如何, 感谢您的帮助:)

【讨论】:

以上是关于获取选定节点的子计数的主要内容,如果未能解决你的问题,请参考以下文章

我想知道从顶部计数的选定节点索引包括父节点

jsTree:如何将选定节点的 ID 获取到 jsTree 中的根节点?

如何在C#中从Treeview的选定节点获取下一个直接节点?

ztree 获取当前选中节点的子节点集合

如何从 Eclipse 插件中获取包资源管理器中的选定节点

ztree怎么获取当前节点下的子节点