обнаружение значение в RSS с использованием импорта xpath xml формула листов Google - PullRequest
0 голосов
/ 12 января 2020

Трудно получить формулу google sheet = import xml для возврата значения внутри тега <itunes:email> внутри канала RSS.

Давайте использовать этот канал, например: https://feeds.soundcloud.com/users/soundcloud: users: 27444293 / sounds.rss

При использовании этой формулы:

=IMPORTXML("https://feeds.soundcloud.com/users/soundcloud:users:27444293/sounds.rss","//channel")

Я получаю все внутри тега <channel> (как и ожидалось). Интересно, что тег вложен в тег <itunes:owner> вместе с <itunes:name>, поэтому таблицы Google поместят эти два значения в одну ячейку. Это выглядит так: «WKXL - NH Talk Radioaj@concordnewsradio.com», поскольку тег <itunes:name> - это «WKXL - NH Talk», а тег <itunes:email> - «aj@concordnewsradio.com».

Когда я пытаюсь изолировать это с помощью следующей формулы: =IMPORTXML("https://feeds.soundcloud.com/users/soundcloud:users:27444293/sounds.rss","//channel/itunes:owner")

Я получаю сообщение об ошибке «Импортированное содержимое пусто».

Есть ли способ изолировать просто значение <itunes:email>? Не очень образованный с элементом Xpath здесь.

Любая помощь очень ценится !!

Ответы [ 2 ]

3 голосов
/ 12 января 2020

<itunes:owner> находится в пространстве имен XML, которое обозначается itunes: и связано с URI (вы можете найти этот URI в документе XML).

Обычно вы объявил бы это пространство имен перед использованием XPath, но IMPORT XML не имеет никаких средств для этого. Поэтому вы можете обратиться к элементу по его локальному имени, то есть owner, игнорируя пространство имен.

//channel/*[local-name() = 'owner']

*[local-name() = 'owner'] можно прочитать как "любой элемент (* ) которого local-name () является owner ". Вам нужно будет выполнить это обходное решение для каждого элемента XML, который находится в пространстве имен.

0 голосов
/ 12 января 2020
...