実用的アプリケーションの開発(Word編)
プロジェクトの作成
[ファイル]⇒[新規作成]⇒[プロジェクト]から、[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から必要な情報が取り出せました。