プロジェクトの作成
[ファイル]⇒[新規作成]⇒[プロジェクト]から、[Word 2007 ドキュメント]を作成します。

ドキュメントは新規に作成します。

[プロジェクト]⇒[ユーザーコントロールの追加]⇒[新しい項目の追加]⇒[ユーザーコントロール]を選択し、追加を押します。

デザイン画面が開きますが、ここでは何もしません。
次に、ソリューションエクスプローラでWebNewsReaderプロジェクトを右クリックし、[追加]⇒[新しい項目]を開きます。[リボン(ビジュアルデザイナ)]を選択し、追加を押します。
リボンのデザイン画面が開くので、タブとグループのLabelプロパティを設定します。

フィードの選択、登録を行うためのインタフェースを追加します。

フィードの取得を行うインタフェースを追加します。

フィードの初期値を設定しておくために、コードを編集します。

現在選択しているURLを保持するためのプロパティを追加します。

イベントハンドラを実装します。

フィードの取得を行うイベントハンドラ(button2_Click)については、後で実装します。
XMLの取得
XMLを取得して、Wordドキュメントに書き出す部分を実装します。

XMLファイルを読む部分が出来たので、フィードの取得を行うイベントハンドラ(button2_Click)から呼び出せるようにします。

XMLの解析
現時点で、以下のようなドキュメントが生成されます。

しかし、これは生のXMLを直接表示しているだけなので、非常に読みづらいです。
そこで、XMLのタグを元に、必要な情報のみを抽出します。
プロジェクト名で右クリックして、[追加]⇒[新しい項目]⇒[クラス]を選択します。

この新しいクラスの実装イメージは次ページの図のようになります。これから順に説明していきます。

まず、XMLファイルの構造を見てみましょう。

サイトの名前が、<rss><channel><title>の位置に記述されています。サイトのURLは、<rss><channel><link>の位置にあります。以下、同様にして、必要な情報をXPathで記述してみると、以下のようになります。
| 情報の種別 | XPath |
|---|---|
| サイトの名前 | /rss/channel/title |
| サイトのURL | /rss/channel/link |
| エントリのタイトル | /rss/channel/item/title |
| エントリのURL | /rss/channel/item/link |
| エントリの更新時刻 | /rss/channel/item/pubDate |
| エントリの内容 | /rss/channel/item/description |
まず、サイトの名前とURLを抽出します。ここでは、サイトの名前とURLは1つしか存在しないことを前提としています。

次に、各エントリの情報を抽出します。エントリは複数ある可能性が高いので、List<>を使って受けています。

ここまでで、XMLから必要な情報が取り出せました。




