ヘッダを書く。
xml version="1.0" encoding="UTF-8"
最上位のタグを配置。
<xslstylesheet version="1.0" xmlnsxsl="http://www.w3.org/1999/XSL/Transform">
</xslstylesheet>
XML側のルートタグの出力を定義する。別の定義(テンプレート)を埋め込みたい時は<xsl:apply-templates />を挿入しておく。
<xsltemplate match="/">
<html>
<head>
<title>HelloWorld</title>
</head>
<body>
<xslapply-templates />
</body>
</html>
</xsltemplate>
<xsl:apply-templates />で適用されるテンプレートを書く。
<xsltemplate match="message[@name='hello']">
<xslvalue-of select="." />
</xsltemplate>
上のようにするとルート直下の<message>タグのname属性”hello”のinnerTextが配置される。
XMLのルートタグ以下に<message>タグしかなければこれでもいいけれど、いっぱいタグがあると全部出力されてしまう。回避方法は
<xsltemplate match="/">
<html>
<head>
<title>HelloWorld</title>
</head>
<body>
<xslapply-templates select="message[@name='hello']" />
</body>
</html>
</xsltemplate>
というように<xsl:apply-templates />のselect属性で指定する。
<img>や<a>タグのようなinnerTextではなく属性値に設定したい場合は
<xsltemplate match="message[@name='src']">
<img>
<xslattribute name="src"><xslvalue-of select="." /></xslattribute>
</img>
</xsltemplate>
というようにattributeで設定する。
XMLのネスト先を指定する時は
<xsltemplate match="message/foo/hoge">
というようにそのままスラッシュ区切りで降りていけば指定できる。