ImportXML Google电子表格Alexa排名检查器

时间:2014-01-23 22:08:17

标签: xpath google-sheets google-docs alexa

尝试使用= ImportXML解析Google Doc中的Alexa排名。以下有效并显示全局排名:

=value(ImportXML(CONCATENATE("http://data.alexa.com/data?cli=10&dat=snbamz&url=",$A$4),"//@rank[1]"))

理论中,如果存在,则以下应显示国家/地区排名:(这不起作用)

=ImportXML(CONCATENATE("http://data.alexa.com/data?cli=10&dat=snbamz&url=",$A$4),"//@rank[2]")

以上是不起作用的部分。它没有拉动第二个“等级”属性的值。

我也尝试过:(不起作用)

=ImportXML(CONCATENATE("http://data.alexa.com/data?cli=10&dat=snbamz&url=",$A$4),"/country/@rank")

帮助?我做错了什么?

2 个答案:

答案 0 :(得分:1)

您的第二个XPath查询可能无法正常工作。您正在尝试查询元素的第二个@rank属性,但可能只有一个。如果要在整个文档中选择第二个@rank属性,请使用(//@rank)[2]

您的替代查询不起作用,因为country不是根元素。请改用//country/@rank。提供完整路径可能是合理的,以防止获取错误的元素/属性(如果它们出现在文档中的其他位置):

/alexa/sd/country/@rank

请注意,主要是XPath区分大小写,尽管Google Spreadsheet似乎不是。这里更好地使用所有大写,就像XML输入一样。

答案 1 :(得分:0)

通过反复试验,我得出以下解决方案,截至2014-02-17准确无误。

=ImportXML(CONCAT("http://data.alexa.com/data?cli=10&url=", "www.google.com"), "number(//COUNTRY[@code='US']/@rank)")

观察:

  • 标签似乎区分大小写
  • 属性必须为小写