×

GoogleスプレッドシートのIMPORTXML関数でXMLファイルを処理する

2024/04/17

GoogleスプレッドシートのIMPORTXML関数について備忘録。

IMPORTXML - Google ドキュメント エディタ ヘルプ

HTMLスクレイピングの記事が山ほど見つかるが、XMLファイルを扱う記事は少ない。

例えばこのブログのサイトマップを対象に実行する。

sitemap.xmlのスキーマは以下の通り。

sitemap.xml<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc></loc>
    <lastmod></lastmod>
  </url>
</urlset>

今回はURLの一覧を作るため「loc」タグのみを取得したい。htmlと同様、「//loc」とやれば良いかと思いきやエラーとなる。

XMLの場合、HTMLとはXPathの指定が異なる。

正解はこれ。

XPath//*[local-name() ='url']/*[local-name() ='loc']

XPathはこのサイトで検証できる。

Online XPath Tester and Evaluator

実際のIMPORTXML関数はこんな感じ。

IMPORTXML関数=IMPORTXML("https://www.neputa-note.net/sitemap.xml","//*[local-name() ='url']/*[local-name() ='loc']")

実行結果

記事画像

以上

参考記事

How to Extract URLs from a Sitemap Using Google Sheets - Aubrey Yung

コメント