Anc*_*end 5 xpath google-sheets xml-parsing
我正在使用谷歌文档进行网页抓取.更具体地说,我使用IMPORTXML功能内置的Google表格,其中我使用XPath选择节点来从中抓取数据.
我要做的是基本上检查特定节点是否存在,如果是,则选择其他一些随机节点.
/*IF THIS NODE EXISTS*/
if(exists(//table/tr/td[2]/a/img[@class='special'])){
/*SELECT THIS NODE*/
//table/tr/td[2]/a
}
Run Code Online (Sandbox Code Playgroud)
小智 7
你没有像XPath那样的逻辑,但你可能能够做你想要的事情.
如果你想选择//table/tr/td[2]/a
但只有它有一个img[@class='special']
,那么你可以使用//table/tr/td[2]/a[img[@class='special']]
.
如果你想在其他情况下选择一些其他节点,你可以将两个路径(|
运算符)联合起来,并确保每个路径都有一个[]
相互排斥的过滤器(内部),比如一个是路径,另一个是not()
那条路.我举个例子,但我不确定你想要的"其他随机节点"......也许你可以澄清一下?
关键是要将XPath视为一种查询语言,而不是程序语言,所以你需要考虑选择器和过滤器,这是一种比大多数程序员习惯的思考问题的方式.但是过滤器不需要与选择器特定相关(例如,您可以使用过滤器开始查看文档的根目录)会导致一些强大的(如果难以阅读)可能性.