2016-11-15 75 views
0

我可以加载一个包含下列节点的XML文件。我可以通过使用GetElementsByTagName来获得节点的这部分内容。但是,我似乎无法找到正确的语法来获取子节点。我期待只获得当前的Crewbase。如何选择一个子节点?

使用下面的代码我得到错误“对象未设置为对象的实例”。从我的研究看来,这似乎应该工作,所以我必须错过简单的东西,但我只是没有看到它。

XML部分

<Bid> 
<Current> 
    <Crewbase>DFW</Crewbase> 
    <EquipmentGroup></EquipmentGroup> 
</Current> 
<Next> 
    <Crewbase></Crewbase> 
    <EquipmentGroup></EquipmentGroup> 
    <EffectiveDate/> 
</Next> 
</Bid> 

代码:

XmlNodeList nodesCrewMember = xmlDoc.GetElementsByTagName("Bid"); 
foreach (XmlNode node in nodesCrewMember) 
{ 
    var crewBase = node.SelectSingleNode("/Current/Crewbase").InnerText; 
} 
+0

您的XML不以'/ Current'开头。它以'/ Bid'开头。 – Tomalak

回答

0

我曾与一个同事,我们发现这个工作。我尝试了类似的东西,但在开始时没有两个正斜杠。这两个起点是关键。

var crewBase = xmlDoc.SelectSingleNode("//Bid/Current/Crewbase").InnerText; 
+0

您需要阅读XPath的基础知识。敲击它直到它工作并不是一种策略。 – Tomalak