今回からはXSLT(Extensible Stylesheet Language Transformations)を使ってみることにする。まずいつもどおりWikipediaから(日本語版は情報少ないんで、英語版をリンクします)。
Wikipedia : XSL Transformations
Extensible Stylesheet Language Transformations (XSLT) is a Turing complete XML-based language used for the transformation of XML documents.
XSLTとは読んで字の如しなのだが、あるXMLファイルをHTMLやXHTMLや別の形式のXMLに変換する場合に利用する技術。その変換の方法をスタイルシートと呼ばれるXSLファイルに記述する(ちょっとややこしいが、このXSLファイルはXMLで書かれている)。変換されるXMLファイルと、変換ルールを記述したXSLファイルをXSLT processorというものに渡してあげると、変換されたファイルが出力されるという非常に分かり易い仕組みであり、XSLTを学ぶというのはこのXSLファイルの記入方法を学ぶこととほぼイコールである。
このXSLT processorをPythonプログラムの中に組み込み、アプリケーションの機能の一部として利用できるのだが、今回はまず手始めとしてコマンドラインツールを使ってXSLTの動きを見ていこう。よって今回は特にPythonのコードは出てきません。
まず以下のサイトより、Pythonのサードパーティである4Suiteをダウンロードする。4Suiteに関しての詳しい情報はこちらを参照して頂きたいいが、XML関連の色々な機能を提供してくれる便利なものである。
SourceForge.net : 4Suite
4SuiteをPythonに適用すると、Pythonフォルダ内のScriptsフォルダに「4xslt.exe」というファイルが出来上がっていると思うが、これがXSLT processorであり今回はこれをコマンドラインから叩くことによってXSLTの動きを確かめる。
今回は例として、src.xmlというXMLファイルをstyle.xslというXSLファイルに記述されたルールに従ってresult.htmlというHTMLファイルを生成することにする。src.xmlとstyle.xslは以下のようになっている。
src.xml(変換されるファイル)
<?xml version="1.0"?> <purchases> <product name="floppy diskA" price="3.50"/> </purchases>
style.xsl(変換ルールを記述したファイル)
<?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="/"> <html><body><xsl:apply-templates/></body></html> </xsl:template> <xsl:template match="/purchases/product"> <center><p>Product: <xsl:value-of select="@name"/> Price: <xsl:value-of select="@price"/></p></center> </xsl:template> </xsl:stylesheet>
このふたつを以下のように実行する。
C:\Python24\Scripts>4xslt.exe src.xml style.xsl > result.html
すると、以下のような結果ファイルresult.htmlが生成された。
<html> <body> <center> <p>Product: floppy diskA Price: 3.50</p> </center> </body> </html>
簡単な例だが、あるルールに従ってXMLファイルがHTMLファイルに変換されたことを確認できると思う。今回はHTMLファイルを生成したが、ちょっと応用すればXMLファイルを結果とすることも出来るというのは容易に想像がつくかと思う。これは企業間などで違った形式のXMLファイルをやり取りする場合などに有用な技術となるだろう。
では今回で簡単にXSLTの動きを見たので、次回からはこれをPythonに組み込んでいく方法を勉強する。