2016-11-15 74 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