获取所选节点的子计数

时间:2014-02-11 20:50:03

标签: c# xml xmlnode

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

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

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

enter image description here

<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=""/>

1 个答案:

答案 0 :(得分:0)

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

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

在这个例子中,我正在使用所有可用节点(大约150多个节点) 并为每个节点我循环的属性

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

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