计算具有2种子节点的父节点 - 特别是1个“boy”节点和1个“girl”节点

时间:2012-02-14 10:15:33

标签: .net xml xpath siblings

我的XML文件包含这样的数据......

    <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查询的任何想法?

2 个答案:

答案 0 :(得分:3)

尝试使用parent[boy and girl]作为xpath查询。

在MSDN上查看XPath Examples

答案 1 :(得分:1)

使用

count(//parent[boy and girl])

评估此XPath表达式时,结果是XML文档中所有parent个元素的计数,这样每个元素都有一个boy和一个girl子元素。 / p>

要评估此类XPath表达式(不选择节点),请使用XPathNavigator.Evaluate()