Of ChaichanPapa-World !

Home/Menu

ストリクトなHTMLの基礎講座

はじめてのXMLとXSLT

◆ はじめに

実は、はじめて、XML(eXtensible Markup Language)とXSLT(XML Stylesheet Language Transformation)を使ってブラウザに任意の文字列を表示をしてみました。

私は、WEB相談室のお陰様で、会社では、ちょっとしたWEBの大家になっていて、いろいろとWEB関係のことを質問されるわけです。 そして、HTMLやJavaScriptなどは、まぁまぁ答えられるのですが、最近、XML関係を質問される機会が増えて、そのたびに、『X系は、知らん!』と威張っていました。

しかし、そろそろ潮時なので、この辺ですこし勉強をはじめることにしました。

◆ XMLとXSLTの概説

XMLは、任意なタグで任意な文字列などを挟み、要素を表現します。しかし、当然、これらの要素は、HTMLではないので、このままでは、ブラウザに表示されません。そこで、任意なタグをHTMLなタグに変換してあげれば、ブラウザ表示されますよね。そこをXSLTが担当します。

以下が、今回、ブラウザに表示させたXMLとXSLTのサンプルソースです。

XMLソース(tstxml01.xml)

<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet href="tstxsl01.xml" type="text/xsl" ?>
<document>
  <header>はじめてのXMLとXSLT</header>
  <paragraph>はじめて、XMLとXSLTを使って、ブラウザへ表示してみました。</paragraph>
</document>
解説

1行目は、XML宣言で、UTF-8やUTF-16以外の文字コードを使う場合には、文字コードをencoding属性で指定しておきます。

2行目は、xml-stylesheet処理命令で、XSLTスタイルシートファイル(tstxsl01.xml)をhref属性へ指定します。

3行目以降は、XMLの階層的な任意の各要素になります。

XSLTソース(tstxsl01.xml)

<?xml version="1.0" encoding="shift_jis" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > 
  <xsl:template match="/"> 
    <xsl:apply-templates/>
  </xsl:template> 
  <xsl:template match="document"> 
    <html><xsl:apply-templates/></html>
  </xsl:template>
  <xsl:template match="header"> 
    <h1><xsl:value-of select="."/></h1>
  </xsl:template> 
  <xsl:template match="paragraph" > 
    <p><xsl:value-of select="."/></p>
  </xsl:template> 
</xsl:stylesheet>
解説

1行目は、XML宣言で、そう、XSLTもXMLで表現します。UTF-8やUTF-16以外の文字コードを使う場合には、文字コードをencoding属性で指定しておきます。

2行目は、xsl:stylesheet要素で、XSLTのバージョンとXSLTの名前空間の使用宣言します。

3から5行目は、ルートノードのマッピングを行っています。まず、ルートノードとは、XMLの最上位要素(今回はdocument要素)のさらに上にルートのノードがあると考えます。また、<xsl:apply-templates/>は、ルート要素の子要素であるdocument要素以下を階層構造ごとマッピングしています。

6から8行目は、document要素のマッピングを行っています。<html><xsl:apply-templates/></html>は、document要素の内容を階層構造ごとhtml要素へマッピングしています。

9から11行目は、header要素のマッピングを行っています。<h1><xsl:value-of select="."/></h1>は、header要素の文字列をh1要素へマッピングしています。

12から14行目は、paragraph要素のマッピングを行っています。<p><xsl:value-of select="."/></p>は、paragraph要素の文字列をp要素へマッピングしています。

最後の</xsl:template></xsl:stylesheet>は閉じタグです。

サンプルのXMLページ

上記のサンプルページです。

◆ おわりに

本講座は、ほんのさわりで、詳しくは、以下のサイト等をあたってみてください。

わかりやすいXSLT講座

以下は他所様のXSLT講座です。すごくわかりやすいです!

わかりやすいXML講座

以下は他所様のXMLT講座です。すごくわかりやすいです!

非常に難しいXMLを非常にわかりやすく解説されていて、著者の人柄が伝わるXML講座を見つけましたので、ご紹介致します。

Home/Menu/HTML概説リファレンス