2005 年 8 月の履歴(もしくは日誌)


2005 年 8 月

8 月 5 日

xsltproc を使って XHTML からメタデータを抽出してみる

XML.com の記事を見ていたら,面白い事が書いてありました.Libxlst を紹介する記事だったんですが,xsltproc で,直接 Web ページや XSLT のスタイルシートをダウンロードしつつ,変換するっていう事.そんな事ができるって知りませんでした.記事の例では Google News のページを得て,それに XSLT を使ってブロックレベルの HTML 要素に固有の id を挿入するっていうデモでした.

xsltproc -html -o gnews.xml http://www.snee.com/xml/xslt/addids.xsl http://news.google.com/news?ned=tus

Windows ではどうだか知らないけど,Mac OS X とか Linux では xsltproc というコマンドが使えるようになっていると思います.さっそく試してみました.これ自分の環境でやってみたら,Google の URI はダブルクォーテーションで囲む必要がありました.

xsltproc -html -o gnews.xml http://www.snee.com/xml/xslt/addids.xsl "http://news.google.com/news?ned=tus"

したら,gnews.xml っていうファイルが生成されました.これは元と比べると id 属性が挿入されて,そこに固有 ID が与えられてました.まぁ変換の内容は XSLT が分かる人はスタイルシートを見れば数行なのですぐに分かると思います.

これ,-html っていうオプションを与えると,入力が整形式 XML でない HTML でも受け入れるってのが面白いですね.それに HTML をいったんダウンロードしなくても,直接 xsltproc で取って来れるって知らなかったですよ.

これを使って XHTML に埋め込まれているメタデータを RDF/XML として抽出するのを試してみました.GRDDL だと,XHTML にメタデータを埋め込み,その XHTML の profile の情報から利用できる XSLT スタイルシートが得られるようになっています.ここでは profile を見て XSLT スタイルシートを見つけるのでは無くて,神崎さんの xh2rdf.xsl を利用します.

xsltproc -o metadata.rdf xh2rdf.xsl http://onohiroki.cycling.jp/2005-08-05-1

これで metadata.rdf というファイル名で RDF/XML が得られます.もっとあちこちで GRDDL が利用されたらおもしろいかな.

参照先:

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20050805n1 TrackBack