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



我有包含以下数据的XML文件。。。

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

我想统计一下同时拥有两种类型的子节点IE的父母:一个男孩和一个女孩。在上面的例子中,答案是1,因为只有一位父母同时有一个男孩和一个女孩。我正在使用xpath来查询XML。我现在拥有的是这样的东西。。。

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

我尝试的各种查询要么将错误抛出为无效的xpath,要么总是返回0,即使我使用的小测试XML文件肯定有一些。

关于我可以使用什么xpath查询,有什么想法吗?

尝试将parent[boy and girl]作为您的xpath查询。

查看MSDN上的XPath示例。

使用

count(//parent[boy and girl])

当计算此XPath表达式时,结果是XML文档中所有parent元素的计数,因此每个元素都有一个boy和一个子girl

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

最新更新