【问题标题】:How to Import XML table Google Sheets如何导入 XML 表格 Google 表格
【发布时间】:2016-09-14 14:04:02
【问题描述】:

所以我有一个谷歌表,我想通过 ergast.com API 导入 F1 排位赛和比赛结果。我只关注表格中的驱动程序和位置信息,但如果更容易,我很乐意导入整个表格。我已经尝试过 IMPORTHTML、IMPORTFEED、IMPORTXML,但无论我进行何种查询,我似乎都无法生成任何数据(只是 N/A)。

比赛 1 的 API 链接是:http://ergast.com/api/f1/2016/1/qualifying。 URL 在单元格 A1 中。

我试过=IMPORTHTML(A1,"list",0) 和table 也一样,但没有。

我也尝试过使用 =IMPORTXML 的特定 xpath,但似乎无法显示任何数据。

请有人帮我指出正确的方向来帮助导入这些数据吗?

非常感谢。

【问题讨论】:

    标签: xml api xpath import google-sheets


    【解决方案1】:

    要导入 XML 文件,我们可以使用 IMPORTXML 或 IMPORTDATA。

    对于使用 IMPORTXML 的情况,如果设置了 xmlns,请务必注意源文件。在引用的源文件第三行,

    告诉我们使用了命名空间(参见 xmlns 属性),因此我们应该使用通配符或查询 name 属性的值。

    由于位置是名为Driver的元素的一个属性,所以在下面的例子中,使用IMPORTXML和数组来获取数据:

    示例
    A1:http://ergast.com/api/f1/2016/1/qualifying
    A2:司机
    A3:

    ={
      IMPORTXML(A1,"//*[name()='"&A2&"']/../@position"),
      IMPORTXML(A1,"//*[name()='"&A2&"']")
    }
    

    注意:某些电子表格设置需要使用 \ 而不是 , 作为列分隔符

    结果

    +----+--------+----+-----------+------------+------------+------------+
    |    |   A    | B  |     C     |     D      |     E      |     F      |
    +----+--------+----+-----------+------------+------------+------------+
    |  1 | http://ergast.com/api/f1/2016/1/qualifying        |            |
    |  2 | Driver |    |           |            |            |            |
    |  3 | 1      | 44 | Lewis     | Hamilton   | 1985-01-07 | British    |
    |  4 | 2      |  6 | Nico      | Rosberg    | 1985-06-27 | German     |
    |  5 | 3      |  5 | Sebastian | Vettel     | 1987-07-03 | German     |
    |  6 | 4      |  7 | Kimi      | Räikkönen  | 1979-10-17 | Finnish    |
    |  7 | 5      | 33 | Max       | Verstappen | 1997-09-30 | Dutch      |
    |  8 | 6      | 19 | Felipe    | Massa      | 1981-04-25 | Brazilian  |
    |  9 | 7      | 55 | Carlos    | Sainz      | 1994-09-01 | Spanish    |
    | 10 | 8      |  3 | Daniel    | Ricciardo  | 1989-07-01 | Australian |
    | 11 | 9      | 11 | Sergio    | Pérez      | 1990-01-26 | Mexican    |
    | 12 | 10     | 27 | Nico      | Hülkenberg | 1987-08-19 | German     |
    | 13 | 11     | 77 | Valtteri  | Bottas     | 1989-08-29 | Finnish    |
    | 14 | 12     | 14 | Fernando  | Alonso     | 1981-07-29 | Spanish    |
    | 15 | 13     | 22 | Jenson    | Button     | 1980-01-19 | British    |
    | 16 | 14     | 30 | Jolyon    | Palmer     | 1991-01-20 | British    |
    | 17 | 15     | 20 | Kevin     | Magnussen  | 1992-10-05 | Danish     |
    | 18 | 16     |  9 | Marcus    | Ericsson   | 1990-09-02 | Swedish    |
    | 19 | 17     | 12 | Felipe    | Nasr       | 1992-08-21 | Brazilian  |
    | 20 | 18     | 26 | Daniil    | Kvyat      | 1994-04-26 | Russian    |
    | 21 | 19     |  8 | Romain    | Grosjean   | 1986-04-17 | French     |
    | 22 | 20     | 21 | Esteban   | Gutiérrez  | 1991-08-05 | Mexican    |
    | 23 | 21     | 88 | Rio       | Haryanto   | 1993-01-20 | Indonesian |
    | 24 | 22     | 94 | Pascal    | Wehrlein   | 1994-10-18 | German     |
    +----+--------+----+-----------+------------+------------+------------+
    

    【讨论】:

    • 非常感谢您的帮助:)
    • 一个简单的问题鲁本。我需要的重要统计数据之一是汽车是否已退役或未启动(由 API 链接后面的 POS 列中的 R 或 W 指示)。我怎样才能通过这些特定的数据?
    • 我没有在 POS 列中找到 R 或 W。
    • 没关系,我设法找到了 Rubén。这是一个不同的列,我设法更改参数以适应。再次感谢。 IMPORTXML(A2,"//*[name()='"&A3&"']/../@positionText")。我认为 R & W 值在其他种族之下,概述了退休
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多