选择包含空节点或缺少子节点的所有节点

时间:2017-03-03 19:23:34

标签: c# xml xpath

鉴于以下XML:

<books>
    <book>
        <author>Tom</author>
        <genres>
            <genre>Science</genre>
            <genre>Romance</genre>
        </genres>
    </book>
    <book>
       <author>Mary</author>
    </book>
    <book>
        <author>Mike</author>
        <genres>
            <genre>Politics</genre>
            <genre>Romance</genre>
        </genres>
    </book>
    <book>
       <author>Susan</author>
       <genres />
    </book>
</books>

我似乎无法找到一个XPath,它将返回所有没有定义类型的书籍(即Mary和Susan)。我做了很多测试,这个空的儿童测试让我失望。我最近的非工作尝试是:

/books/book[genres/*[count(*)=0]]

请注意,苏珊的书有一个&#34;类型&#34;节点,但它没有孩子,而玛丽甚至没有这个。也许这太复杂了,无法通过XPath工作。如果我能解决一个条件或另一个条件,如果两者都无法合并,我会很高兴。

0 个答案:

没有答案