日記風味2006年4月 < 日記風味index > 日記風味2006年6月
以前のXMLのスタイルシート「XSLT」 RSSをブラウザで表示ではRSSを直接ブラウザで閲覧する場合でしたから、 ブラウザに搭載されているXSLTプロセッサを使用して、クライアントサイドでHTMLへの変換を行っていました。 通常のコンテンツであれば、やはりサーバ側で予めHTML化しておく方が良いと思いますので、今回はこちらのお話。
まずはXSLTプロセッサを導入する必要がありますが、Javaベースの「Xalan」あたりが良さそうです。Java 1.4シリーズには標準で入っていますので、Javaをインストールすればそのまま使えます。
使用方法は簡単で、次のような感じ。
java org.apache.xalan.xslt.Process -IN 入力XMLファイル名.xml -XSL XSLファイル名.xsl -OUT 出力HTMLファイル名.html
以下に簡単な使用例を書いておきます。
これは説明の必要は無いでしょう。HTML化の元ネタとなる、タイトルと記事だけのとても単純なXMLファイルです。
<?xml version="1.0" encoding="Shift_JIS"?> <?xml-stylesheet type="text/xsl" href="http://www.suzunee.com/piyo_style.xsl" media="screen,tv" ?> <ぴよ xmlns="http://www.suzunee.com/piyo"> <タイトル>ぴよのサンプル</タイトル> <記事>ぴよの本文をここに書く</記事> </ぴよ>
サンプルXMLファイルを元にXHTML1.0の文書を作成するXSLファイルです。
正しいXHTML文書を生成するために、stylesheet要素やoutput要素の各属性をきちんと設定しておくのがポイントでしょうか。
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet
xmlns="http://www.w3.org/1999/xhtml"
xmlns:piyo="http://www.suzunee.com/piyo"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" exclude-result-prefixes="xsl piyo">
<xsl:output method="xml" encoding="Shift_JIS"
omit-xml-declaration="no"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
indent="yes"></xsl:output>
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="piyo:ぴよ">
<html xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-language" content="ja" />
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="author" content="okutin" />
<title><xsl:value-of select="piyo:タイトル" /></title>
<link rev="made" title="okutin mail address"
href="mailto:okutin@suzunee.com" />
<link rel="stylesheet" title="OKUTIN Style"
type="text/css" media="screen,tv" href="mainstyle.css" />
</head>
<body>
<h1><xsl:value-of select="piyo:タイトル" /></h1>
<p><xsl:value-of select="piyo:記事" /></p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
UNIX系OSなどで、ディレクトリ内にあるXMLファイルをすべてHTMLに変換するスクリプトのサンプルです。
#!/bin/sh # XMLをHTMLに変換 for filename in `ls -1 *.xml` do fnamebody=`echo $filename | cut -d "." -f 1` java org.apache.xalan.xslt.Process -IN $fnamebody.xml -XSL piyo_style.xsl -OUT $fnamebody.html done
ドライバーのバージョンが古いままだと「草原」でかなり重い感じでしたが、最新バージョンに変更すると「草原」でちょっと動きが鈍くなったかもという箇所があるくらい。
マイルームで動き回るくらいなら「フレームスキップ 0 (60フレーム)」でも無問題。草原を含めて外には行っていないので、マイルーム以外はわかりません。
メニューの動きが鈍いのと、アイテムが取りにくいってのがあって、操作面はPSOよりも悪い感じがしていたのですが……。昨日、久しぶりにPSO BBをやったらもうPSOには戻れないと感じた。
ファンタシースターユニバース(PSU)のクローズドβトライアルに当選したので、 ヒューマン(女)ハンターの嘉納潤を作成してずっとプレイしていました。長い間待たされただけあってPSOよりも大分面白くなってますなぁ。 戦闘だけでもアクション性がさらに増して多彩な事ができるし(というか、ソレができないとボス戦とかがつらい)、 戦闘以外でもMMOの良さを取り入れて、服装などをはじめいろいろとキャラクターにこだわれるようになっている。顔もかなり細かく設定できますし。
そういえば昨日ご一緒したパーティの中に嘉納潤の元ネタがわかる人が居てビックリ。やはりミッシングパーツは良いよ〜。
他にも色々あるのですが、クローズドβなのであまり細かいことを書けないのがつらいところですねぇ。