【问题标题】:Google spreadsheet importxml : how to grab all names of element nodes in XMLGoogle 电子表格 importxml:如何获取 XML 中元素节点的所有名称
【发布时间】:2016-11-12 11:35:26
【问题描述】:

我正在尝试使用 importxml 函数来导入 XML。

<item>
    <name>James</name>
    <date>11/11/2016</date>
    <description>Student</description>
</item>

如果我使用,

=importxml(URL, "//item")

我可以导入信息,但不能导入每条信息的名称。

我想拉这样的东西

name      date       description
James     11/11/2016 Student

任何 xPath 函数可以做到这一点?

【问题讨论】:

  • 你能分享示例网址,以便我可以在发布前快速测试吗?您应该可以只输入“//item/name”,但有时可能会有细微差别
  • kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/… 在这里,我将使用“//dailyBoxOffice”提取数据,但我想提取每一列的名称,这些名称需要一一复制/粘贴。感谢您的评论!
  • 你是指嵌套在dailyBoxOffice下的标题吗?以便您可以选择特定的列?

标签: xml xpath google-sheets


【解决方案1】:

你可以用这个公式得到标题:

=unique(arrayformula(regexreplace(transpose(split(IMPORTDATA(A1),"><",false)),">.*|\/","")))

基本上我所做的就是使用 importdata 来拉取页面上的所有内容,然后使用 split 和 transpose 函数,我强制它根据每个嵌套项目 &gt;&lt; 进行拆分,transpose 是垂直交换它。

这时你会看到:

然后将 regexreplace 与 arrayformula 一起使用,我删除带有 "&gt;.*|\/" 的标头之后的所有数据,然后使用 unique 为我提供所有标头的最终唯一列表。

【讨论】:

  • 我的导入数据有一些逗号不是分隔符。这打破了IMPORTDATA。有没有办法使用IMPORTDATA 对我的数据完成与上述解决方案相同的操作,例如使用SUBSTITUTEREGEXREPLACE 或其他函数来替换逗号?
  • @Catalyx 是的 - 我建议您使用 =concatenate(importdata(your_url)) 包装您的导入函数,以便将其全部合并到一个单元格中。或者如果你真的更喜欢替换逗号regexreplace(data, "[,]", "")
猜你喜欢
  • 1970-01-01
  • 2011-05-15
  • 2020-06-01
  • 2019-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多