使用IMPORTXML提取feed中<updated>字段报错,求正确XPath
解决IMPORTXML提取字段的问题
我之前碰到过一模一样的情况,核心原因是Dilbert的Atom feed里的元素带有默认命名空间,直接用//updated会因为命名空间不匹配找不到节点。给你两个可行的解决方法:
方法1:忽略命名空间匹配(最稳妥)
Google Sheets的IMPORTXML支持通过local-name()函数绕过命名空间限制,直接匹配标签名。你可以用这个XPath表达式:
=IMPORTXML("http://dilbert.com/feed", "//*[local-name()='updated']")
它会匹配所有标签名为updated的节点,不管节点属于哪个命名空间,完美解决空返回的问题。
方法2:指定完整命名空间(可选)
如果你想严格遵循命名空间规则,Dilbert的feed使用的是Atom标准命名空间http://www.w3.org/2005/Atom。不过Google Sheets对命名空间前缀的映射支持比较繁琐,所以第一种方法其实更实用,不需要额外配置前缀。
简单说下为什么直接用//updated不行:feed里的<updated>元素是隶属于Atom命名空间的,而XPath默认不会自动识别未声明的命名空间,所以直接写标签名相当于在“无命名空间”的范围内查找,自然找不到对应节点,返回#N/A错误。
内容的提问来源于stack exchange,提问作者tic
相关产品推荐
相关产品推荐

