2012-02-14 66 views
1

我有一個包含這樣的數據的XML文件...計數父節點 - 特別是1「男孩」節點和1個「女孩」節點的每個

<parent> 
     <boy/> 
    </parent> 
    <parent> 
     <girl/> 
    <parent> 
    <parent> 
     <boy/> 
     <girl/> 
    </parent> 

...我想要統計有兩種類型的孩子節點的父母IE:1個男孩和1個女孩。在上面的例子中,答案是1,因爲只有1個父母同時有男孩和女孩。我使用xpath來查詢XML。我現在有是這樣的......

XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.Load(inXML); 
int ParentsWithBothKids = xmlDoc.SelectNodes("MY QUERY HERE!!!").Count; 

我嘗試無論是各種查詢拋出一個錯誤是無效的XPath或始終返回0,即使我用肯定是小試XML文件中有一些。

有關我可以使用哪些xpath查詢的任何想法?

+0

看看到的LINQ to XML – Nagg 2012-02-14 10:17:35

+1

什麼是「對各種查詢我試試」? – AakashM 2012-02-14 10:20:05

+0

至少有1個男孩和1個女孩,或者1個或更多男孩和1個或更多女孩? – Filburt 2012-02-14 10:28:46

回答

3

嘗試parent[boy and girl]作爲您的xpath查詢。

在MSDN上檢出XPath Examples

+0

我以前嘗試過這種方法,但它不起作用,但根據您的建議我再次嘗試(並且我也玩過了您鏈接的MSDN示例),然後我注意到它... XML與我的結構略有不同認爲這是!衛生署!所以我微調Xpath查詢了一下,它工作。感謝您的幫助 - 這是一個非常有用的完整性檢查。 – Stark 2012-02-15 10:35:50

1

使用

count(//parent[boy and girl]) 

當這個XPath表達式求值,其結果是在XML文檔中的所有元素parent,這樣他們每個人都有一個boygirl孩子的數量。

評價這樣的XPath表達式(不選擇節點),使用XPathNavigator.Evaluate()

相關問題