JES: Portal Server を使ってみよう (3): XML チャネルで RSS を使う

みなさんは Yahoo のアカウントを持っていますか? My Yahoo では株価を見たり天気予報を見たりニュースを読んだりカレンダーをチェックしたりといろいろカスタマイズできますよね。それもポータルです。その中の一つのチャネル Yahoo RSS リーダーがいつのまにか正式版になっていました。しばらくベータ版だったのですけどね。さっそくそれを使ってブログの RSS を取ってきて表示させてみました。


ちゃんと表示出来ていますね。これを今回は Sun Java System Portal Server で実現してみましょう

XML チャネル を使って実現してみます。XML チャネルは URL スクレーパーチャネルと同様にいろいろな使い方ができます。XML チャネルは XML と XSL でチャネル内容を表示します。XML ファイルや XSL ファイルはネットワーク上どこにあってもかまいません、その Portal Server から見れれば問題ありません。今回は XML チャネルで私のブログのタイトルを表示するチャネルを作ってみましょう。

チャネルの作成方法、表示方法は URL スクレーパーチャネルの作成方法とほとんど同じですので、そちらを参考にしてください。違う点は、
  • チャネルを作成するときに XMLProvider をプロバイダとして選択する
  • urlScraperRulesetID,xslFileName ファイルを指定する
の2点です。

チャネルを作成するときに XMLProvider をプロバイダを選択する

プロバイダは XMLProvider を指定して下さい。



urlScraperRulesetID,xslFileName ファイルを指定する

プロパティの設定では以下のように指定しましょう。 url は RSS フィードの URL です。urlScraperRulesetID はそのままこの値を入れましょう。xslFileName では XSL ファイルを指定します。この場合は sunblog.xml と入力しておきます。

url: http://blogs.sun.com/roller/rss/katakai/
urlScraperRulesetID: default_ruleset
xslFileName: sunblog.xsl


XSL ファイルの用意

次のディレクトリに XSL ファイル sunblog.xsl を用意します。

/etc/opt/SUNWps/desktop/default_ja/XMLProvider

このディレクトリには default_ja と _ja がこれはユーザー言語が日本語の時に使用されるディレクトリという意味です。このディレクトリは rss.xsl というファイルもありますがこの sunblog.xsl ファイルは単純にそのファイルをコピーして編集しただけのものです。

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="rss">
  <xsl:for-each select="channel">
  <xsl:apply-templates select="item"/>
  </xsl:for-each>
</xsl:template>

<xsl:template match="item">
   <li> <a href="{link}" target="desktopRSSWin"><xsl:value-of select="./title"/></a></li>
</xsl:template>

</xsl:stylesheet>

実際の表示

では実際にポータルデスクトップ上で表示してみました。ちゃんと表示できていますね。 (XSL に詳しくないのでこれ以上のことは私はできなかったりします…

Comments:

Post a Comment:
Comments are closed for this entry.
About

NetBeans Globalization

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today