ラベル XML の投稿を表示しています。 すべての投稿を表示
ラベル XML の投稿を表示しています。 すべての投稿を表示

2023-07-05

xsltproc greeting.xsl greeting.xml

O'REILLYの『XSLT』(Doug Tidwell)の第2章では、『プログラミング言語C』以来定番の「Hello World」の例題が掲載されています。そこでは、以下のようなXMLファイル(greeting.xml)と、

<?xml version="1.0"?>
<greeting>
  Hello, World!
</greeting>

以下のようなスタイルシート(greeting.xsl)を使用して、HTMLファイルに変換します。

<xsl:stylesheet
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        version="1.0">
<xsl:output method="html"/>

<xsl:template match="/">
  <xsl:apply-templates select="greeting"/>
</xsl:template>

<xsl:template match="greeting">
  <html>
    <body>
      <h1>
        <xsl:value-of select="."/>
      </h1>
    </body>
  </html>
</xsl:template>
</xsl:stylesheet>

 

この本ではXalanというXSLTプロセッサを使っていますが、僕はlibxsltに入っているxsltprocを使ってみました。

$ xsltproc greeting.xsl greeting.xml
<html><body><h1>
  Hello, World!
</h1></body></html>

XMLファイルが、スタイルシートの定義に基づいて、HTMLファイルに変換できました。まだXSLTファイルの書き方はわかりませんが、この本を読み進めていけば理解できるのだろうと思います。

2023-06-27

XSLTの基礎

XMLに関連する技術のひとつに「XSLT」があります。XML文書の構造を変更するために使わるという概念は、難しくないのですが、具体的に、何をどうするのか分かりません。W3Cのサイトには「XSL Transformations (XSLT) Version 1.0」がありますが、規格書を読んでも、深みにはまるだけではないかという恐れを抱いていました。

 

手っ取り早い参考書として、O'REILLYの『XSLT』(Doug Tidwell)を買ってみました。2001年に出た初版本ですし、Abebooks経由の古本ですが、XSLTを勉強し始めた初心者には十分です。

 

まだ読み始めたばかりですが、第2章の「The Obligatory Hello World Example」が参考になりそうです。以下のようなシンプルなXML文書をXSLTで変換する例が示されています。

 <?xml version="1.0"?>

<greeting>

    Hello, World!

</greeting>

 

このような例は、本書以外でも登場しそうですが、僕が気に入ったのは以下の点です。

  1. XSLTで変換するのが、HTMLだけではなく、PDF、Javaプログラムなどもある。
  2. XSLTの例示が複数あって、いろいろな書き方が考えられることを例示している。

 

XML文書をXSLTを用いてHTMLに変換する例は、よくありますが、Javaプログラムにも変換できるとは知りませんでした。Javaに出来るなら、PythonやAWK(!)にだってできるでしょう。

 

新刊としては約$40だったようですが、古本なので$4くらいでした。さらに送料が$6ちょっと必要で、今は円安なので、最終的に日本円としては千五百円ほどです。激安という訳ではありません。