我有xml文件,如:
<root>
<book>
<first>
<book>1</book>
<book>2</book>
</first>
</book>
</root>
使用Xpath(谓词= tree.xpath(&#39; // book&#39;))我可以找到所有书籍节点(3个节点),例如:
<book>
<first>
<book>1</book>
<book>2</book>
</first>
</book>
<book>1</book>
<book>2</book>
但我怎样才能找到其父节点不是书籍节点的书籍节点?即如果发现节点簿不看其子节点以找到更多的书节点。 在我的例子中,我应该只有:
<book>
<first>
<book>1</book>
<book>2</book>
</first>
</book>
由于
答案 0 :(得分:1)
只需使用
tree.xpath('//book[not(ancestor::book)]'))
不会选择嵌套到其他book
元素中的book
个元素。我假设是
找到其父节点不是书籍节点的书籍节点
您实际上是指找到book
个没有祖先的元素book
元素。
这是正确的XPath表达式,我不能对你的代码发表评论,因为你没有显示它。