使用 Google 表格的 importXML 时不要扩展结果

Don't expand on results when using Google Sheets' importXML

Google Sheets 有一个很酷的函数叫做 importxml。它可以让您从 public 网络资源中抓取数据,例如URL 的标题。

您可以编写 XPath 表达式,例如//title/text() 并且它会找到所有出现的某个值并将它们显示在 Google Sheet 中作为单独的行。漂亮!

如果 <element></element> 的内容包含 HTML 标记,例如<element>some<b>data</b>is<em>here</em>. 然后 Google Sheets 给你两个选择:

  1. 如果您在 XPath 的末尾附加 /text() 则结果是元素的直接文本值,例如some here
  2. 如果您不在 XPath 的末尾附加 /text() ,那么结果是整个文本拆分到行中的多个单元格中。你最终得到 |some|data|is|here|。 (其中 | 作为我的细胞分隔器)

我试图在单个单元格中获取 some data is here,而不是跨行中的多个单元格。有办法吗?

使用 textjoin 或在 importxml 上连接不起作用,因为它随后将其应用于整个结果,如果 <element>some<b>data</b>is<em>here</em>. 有多个实例,那么我将它们全部放入一个单元格而不是每行一个结果(这就是我想要的)。

尝试:

=TEXTJOIN(" "; 1; your_importxml_here)

数组使用:

=FLATTEN(QUERY(TRANSPOSE(your_importxml_here);;9^9))