Реализация Xpath в Google Sheets - PullRequest
0 голосов
/ 02 мая 2018

Вопрос новичка Xpath, так что простите, если это кажется прямым, но я действительно искал ответ везде!

Я пытаюсь создать процесс извлечения всех моих плейлистов из Spotify и сделать его универсальным, что позволяет выполнять миграцию на различные платформы. Я с радостью поделюсь после завершения, поскольку знаю, что многие найдут это полезным.

К сожалению, я нахожусь в тупике при попытке извлечь некоторые данные из:

[http://musicbrainz.org/ws/2/artist/?query=%22faith%20no%20more%22][1]

Я хочу извлечь идентификатор из элемента Artist, который должен быть b15ebd71-a252-417d-9e1c-3e6863da68f8. Я могу заставить это работать в Базе X со следующим:

declare namespace mmd="http://musicbrainz.org/ns/mmd-2.0#";

объявить переменную $ doc: = doc ("http://musicbrainz.org/ws/2/artist/?query=%22faith%20no%20more%22"); $ Док / MMD: метаданные / MMD: художник-лист / MMD: художник / @ идентификатор

Однако в Google Sheets с использованием Importxml лучшее, что я могу сделать, это:

=IMPORTXML("http://musicbrainz.org/ws/2/artist/?query=%22faith%20no%20more%22","//@id")

В результате все 3 идентификатора возвращаются:

b15ebd71-a252-417d-9e1c-3e6863da68f8 489ce91b-6658-3307-9877-795b68554c98 83f22bb6-4631-443c-ВАСЕ-9fae8540362a

Я полностью в тупике, и любая помощь будет принята с благодарностью.

С уважением,

Джеймс

1 Ответ

0 голосов
/ 02 мая 2018

Мне не удалось найти какую-либо полезную документацию по IMPORTXML от Google, но нет никаких доказательств того, что она предоставляет какой-либо способ установки привязки пространства имен или что он поддерживает синтаксис XPath 2.0 *:metadata для выбора элементов, независимых от Пространство имен. Если это так, то вам, возможно, придется прибегнуть к ужасной конструкции *[local-name()='metadata']/*[local-name()='artist-list']/*[local-name()='artist']

...