获取一个节点列表,其中包含子节点计数为0的所有节点

时间:2010-10-30 01:17:05

标签: c# xml

我有一个xml文件

<RTT>
    <AgencyList>
        <agency Name="Bart" Ditection="Outbound">
            <RouteList>
                <Route Name="Fremont" Direction="test">
                    <Stop ID="25" Name="BayFare"/>
                </Route>
                <Route Name="SFO" Direction="Test"/>
                <Route Name="SFO" Direction="Test"/>
            </RouteList>
        </agency>
    </AgencyList>
</RTT>

我想知道如何使用C# 获取包含所有没有子节点的Route的节点列表。

E.g节点列表应仅包含

<Route  Name="SFO" Direction "Test">
<Route  Name="SFO" Direction "Test">

1 个答案:

答案 0 :(得分:4)

XPATH表达式://Route[not(node())]将解决那些Route元素。

它可以在C#中使用,如下所示:

XmlDocument xml = new XmlDocument();
xml.Load("RTT.xml"); //adjust correct path/filename

XmlNodeList xnList = xml.SelectNodes("//Route[not(node())]");
foreach (XmlNode xn in xnList)
{
  //Do something with the selected elements
}