0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RSSのXMLをYAMLに変換する

Posted at

RSSとは?

ウェブサイトの更新情報(新しい記事、ニュース、ブログ投稿など)を配信するための技術で、ウェブサイト側が更新情報を「RSSフィード」という形式で配信します。

RSSのXMLをYAMLに変換する理由

XMLはタグが多くて冗長になりやすいですが、YAMLはインデントを使ってネスト構造を簡単に表現できるため、データを直感的に理解しやすくなります。
YAML形式はプログラムから扱いやすく、簡単にデータをパース(読み取る)したり操作したりすることができます。

XMLからYAMLへの変換の仕組み

XMLのデータ構造をYAML形式に変換する流れは次のようになります。

  1. XMLの構造を理解する
    XMLでは、親子関係やタグを使ってデータを表現します。例えば、RSSフィードでは<rss>, <channel>, <item>などのタグがあり、それぞれに属性や値が設定されています。

  2. YAMLの基本構造にマッピングする
    XMLタグはYAMLのキーに対応し、タグの属性や子要素はYAMLの値に対応します。YAMLでは、インデントでネスト構造を表現するため、XMLの階層構造がそのまま反映されます。

タグ名
(例:<title>) → YAMLのキー(例: title)

タグの値
(例:<title>媒体名</title>)→ YAMLの値(例: title: "媒体名")

タグの属性
(例:<enclosure url="..."/>)→ YAMLのキー・値ペア(例: enclosure: {url: "..."})

XMLの変換例とパラメータの意味

例として以下のようなXMLで解説

<rss version="2.0">
  <channel>
    <title>媒体名</title>
    <link>https://example.com</link>
    <description>ライフハックをお届けするサイトです</description>
    <item>
      <title>記事タイトル1</title>
      <link>https://example.com/first-item</link>
      <description>100均おすすめアイテム10選</description>
      <enclosure url="https://example.com/images/first-item-image.jpg" type="image/jpeg" />
    </item>
  </channel>
</rss>

上記XMLをYAMLに変換すると次のようになります

RSSフィードのYAML形式(変換後)

rss:
  version: "2.0"
  channel:
    title: "媒体名"
    link: "https://example.com"
    description: "ライフハックをお届けするサイトです"
    items:
      - title: "記事タイトル1"
        link: "https://example.com/first-item"
        description: "100均おすすめアイテム10選"
        enclosure:
          url: "https://example.com/images/first-item-image.jpg"
          type: "image/jpeg"

rss: RSSフィード全体を表す最上位のキー

version: "2.0": このフィードがRSS 2.0仕様に準拠していることを示す

channel: フィード全体に関する情報を含む部分

title: フィードのタイトル

link: フィードに関連するウェブサイトのリンク

description: フィードの説明

items: フィードの個別アイテム(投稿や記事)をリスト形式で記述

アイテム内の情報

title: アイテムのタイトル

link: アイテムの詳細リンク

description: アイテムの説明

enclosure: アイテムに関連するメディアファイル(ここでは画像)

url: 画像のURL

type: 画像がJPEG形式であることを示す

変換のポイント

  • 階層構造の保持: XMLのネストされたタグ(例えば、<channel>, <item> など)は、YAMLではインデントで表現され、インデントによって親子関係を示します。

  • 属性の処理: XMLのタグ属性(例えば url や type)は、YAMLではキーと値のペア(ハッシュ形式)として記述されます。

  • タグの値の変換: XMLのタグの値(例えば<title>内の文字列)は、そのままYAMLのキーの値として使用されます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?