我使用以下XPath从文档中获取所有非空文本和图像节点,但排除ID为“mpp_controls”的div中的节点:
很不幸,两个语句都给我带来了语法错误。有没有可能缩短这个查询语句呢?
//img[not(ancestor::*[@id='mpp_controls'][normalize-space()])] | //text()[not(ancestor::*[@id='mpp_controls'])][normalize-space()]
由于这两个元素的谓词相同,而且我可能会在将来对类似查询添加更多标签,因此我试图缩短它。参考这个答案,我得出了以下结论:
//*[self::img or self::text()][not(ancestor::*[@id='mpp_controls'])][normalize-space()]
我也尝试过:
//*[img or text()][not(ancestor::*[@id='mpp_controls'])][normalize-space()]
很不幸,两个语句都给我带来了语法错误。有没有可能缩短这个查询语句呢?