2014-02-18 56 views
0

我有多个层次结构的XML文件(它是一个目录结构,文件,从而有<directory name="..."><file name="...">元素)的XPath匹配的元素,它不包含指定后裔

,我想选择空目录与XPath,但我不知道,如何选择节点,它没有一些后代。 我可以匹配ns:directory[not(ns:file)]但它只是emtpy目录的第一级,我不想做这样ns:directory[not(ns:file)]|ns:directory[ns:directory[not(ns:file)]]|...

任何可能有人请提示,如何做到这一点?

+0

如果搜索中的XPath规范“后裔”,你会看到有一个'后裔::'_axis_这将帮助你这里。 –

回答

1

简单。

//ns:directory[not(.//ns:file)] 
0

上面的答案将排除只包含目录的目录。如果这就是你想要的,那很好。如果你正在寻找一个完全空目录,试试这个:

//ns:directory[not(ns:file|ns:directory)] 
+0

谢谢。但第一个答案是我想要的。 –

相关问题