3

尝试使用 =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")

帮助?我究竟做错了什么?

4

2 回答 2

1

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

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

/alexa/sd/country/@rank

请注意,XPath 主要是区分大小写的,尽管 Google 电子表格似乎不是。最好在此处使用所有大写字母,就像 XML 输入一样。

于 2014-01-24T10:29:48.453 回答
0

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

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

观察:

  • 标签似乎区分大小写
  • 属性必须小写
于 2014-02-17T13:35:48.353 回答