Импорт таблицы Google xml создать таблицу из файла xml - PullRequest
1 голос
/ 28 мая 2020

Попытка использовать импорт xml в гугл-листах. Мой файл XML выглядит примерно так:

<file>
<file_name>file1</file_name>
<file_id>407897</file_id>
<disk_id>180622</disk_id>
</file>

В этом xml ~ 5k файлов тонны. Я пытаюсь создать таблицу в листе Google, как это показано ниже:

col 1 | col 2 | col 3
file1 | 001   | 001
file2 | 002   | 002

Теперь иногда у файла нет идентификатора диска, поэтому это будет:

  <files>
    <file>
    <file_name>file1</file_name>
    <file_id>1</file_id>
    <disk_id>1</disk_id>
    </file>
    <file>
    <file_name>file2</file_name>
    <file_id>2</file_id>
    </file>
    <file>
    <file_name>file3</file_name>
    <file_id>3</file_id>
    <disk_id>1</disk_id>
    </file>
<files>

Таблица, которую я хочу создать, будет выглядеть примерно так:

col 1 | col 2 | col 3
file1 | 001   | 001
file2 | 002   | 
file2 | 002   | 001

Я пробовал использовать:

=importxml("url","//file_name | //file_id | //disk_id")

Это дало мне что-то вроде этого (один столбец):

file1
001
001
file2
002
file3
003
001

и добавление транспонирования дало что-то вроде этого:

=transpose(importxml("url","//file_name | //file_id | //disk_id"))

file1 001 001 file2 002 file3 003 001

Есть ли способ получить это с помощью import xml в google-таблицах?

1 Ответ

0 голосов
/ 28 мая 2020

Вы очень близки к достижению своей цели. Вам нужно всего лишь изменить XPath в формуле IMPORTXML, чтобы читать строки вместо атрибутов. Основываясь на вашем примере XML, вам нужно что-то вроде этого:

=IMPORTXML("{XML URL}","/FILES//FILE")
...