XML+XSL(2)
XMLデータの書き方
1 XMLの宣言
まず,XMLであることの宣言が必要だが,毎回同じなので,こんなものと思っていればよい。
<?xml version="1.0" encoding="UTF-8"?>
2 要素と属性
<data>データ</data>
このようにデータはタグに囲まれる。必ず最後に</要素名>と終了タグが必要。
データがない場合は,<data></data>の代わりに<data/>とだけ書くことができる。
タグの名前(ここではdata)を要素という。data要素などという。
要素には属性が含まれる場合がある。
<data name="arata">データ</data>
このnameはdataの属性である。属性は複数可能。
3 データ構造
要素は階層的な構造を作れる。
たとえば,次のような文章をXMLデータ構造にしてみる。
・XML入門1
+XMLはデータだ
+XSLはプログラムだ
・XML入門2
+XMLの要素
+XMLの属性
全体のデータを囲むルート要素が必要なので,これを<data>とする。
文章のかたまりを<bunsho>とする。番号を属性としてつけておく。
文章の表題を<title>とする。
文章の本文を<honbun>とする。
一行を<ln>とする(lineを省略した)。
そうすると,次のように表現できる。
<?xml version="1.0" encoding="UTF-8"?>
<data>
<bunsho bango="1">
<title>XML入門1</title>
<honbun>
<ln>XMLはデータだ</ln>
<ln>XSLはプログラムだ</ln>
</honbun>
</bunsho>
<bunsho bango="2">
<title>XML入門2</title>
<honbun>
<ln>XMLの要素</ln>
<ln>XSLの属性</ln>
</honbun>
</bunsho>
</data>
これでXMLデータベースが作成できた。test2.xmlとして保存する。
4 XMLは自由に要素を定義して,自由に階層構造が作れる。
5 それでは,これに次のようなXSLスタイルシートを適用して表示してみよう。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="data">
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
最初の3行は決まり文句なので,こんなものと考えておこう。
次の3行も,ほぼ決まり文句で,こんなふうに始まる。
処理手順のかたまり(テンプレート)を呼び出す。
最後の3行が,処理のためのテンプレートだ。
data全体をひとまとまりとして,全部のデータを羅列して抽出する。
真ん中の1行が実際の処理で,各要素のデータを出力する。
test2.xslとして保存する。
6 下のボタンを押すとサンプルを実行する。
ファイル名はtest2.xml,test2.xslである。
htmlのサンプルは次のとおり。前回との違いはファイル名だけだ。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="xslprocessor.js"></script>
<script type="text/javascript">
<!--
function test(xm,xl,loc,jmp){
xslproc(xm,xl,loc,jmp);
}
//-->
</script>
</head>
<body>
<input type="button" onclick="test('test2.xml','test2.xsl','kiji',0)" value="実行">
<div id="kiji"></div>
<body>
<html>
次のお勉強