2012-02-14 59 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()

相关问题