如何在IMPORTXML函数的Xpath语法中使用NOT运算符过滤结果
你当前的过滤逻辑不生效是XPath的上下文节点判断写错导致的。
方案1:直接修改XPath(最优,仅调用一次接口)
修改后的公式如下:
=IMPORTXML( "https://www.sportsgambler.com/injuries/football/", "//select[@class='team-news-dropdown'] /option /@value[not(.='/injuries/football/')]" )
修改说明:你原公式的XPath过滤条件写的是not(@value='/injuries/football/'),此时你已经选中了option的value属性作为当前节点,该节点本身没有子属性@value,所以这个条件永远为真等于没生效,把@value换成指代当前节点本身的.即可正常过滤。
方案2:用原生函数套层过滤(写法更直观易调整)
如果你不习惯修改XPath,也可以用LET+FILTER组合实现过滤,仅调用一次接口性能不受影响:
=LET( all_values, IMPORTXML("https://www.sportsgambler.com/injuries/football/","//select[@class='team-news-dropdown']/option/@value"), FILTER(all_values, all_values <> "/injuries/football/") )
内容的提问来源于stack exchange,提问作者Digital Farmer
相关产品推荐
相关产品推荐

