伸び縮みマークアップ言語 XML
★本ページはプロモーションが含まれています★
■ XSLTスタイルシートを読み込む

■ XSLTスタイルシートを読み込む処理

XSLTスタイルシートもXML文書と同じように、始めに 「ActiveXObject("Microsoft.XMLDOM")」の オブジェクトを生成し、変数に格納、「async」に 「false」を設定して ファイルの読み込みが完了するまで処理を待つようにし、「load」で XSLTスタイルシートを読み込みます。

var オブジェクト名 = new ActiveXObject("Microsoft.XMLDOM");
オブジェクト名.async = false;
オブジェクト名.load("読み込むXSLTスタイルシート");

読み込んだXSLTスタイルシートを適用させるには、 「transformNode」メソッドに 適用するXSLTスタイルシートのオブジェクトを指定します。

XML文書のオブジェクト名.transformNode(XSLTスタイルシートのオブジェクト名);

では、例題を取り上げてみましょう。
以下の3つのファイルをご覧下さい。XML文書を「samp04.xml」、 XSLTスタイルシートを「xslt04.xsl」、 HTML文書を「sam04.html」 とします。 XML文書に「xml-stylesheet」処理命令を書き忘れないようにしてください。

■ samp04.xml

<?xml version="1.0" encoding="shift_jis"?>
<?xml-stylesheet href="xslt04.xsl" type="text/xsl"?>
<会員>
<会員データ>
<番号>1</番号>
<氏名>伸縮○二郎</氏名>
<住所>東京</住所>
</会員データ>
<会員データ>
<番号>2</番号>
<氏名>伸縮○美</氏名>
<住所>東京</住所>
</会員データ>
</会員>

■ xslt04.xsl

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="会員">
  <html>
   <body>
    <table border="1">
     <tr>
      <th>番号</th>
      <th>氏名</th>
      <th>住所</th>
     </tr>
     <xsl:apply-templates select="会員データ">
      <xsl:sort select="番号" data-type="number"/>
     </xsl:apply-templates>
    </table>
   </body>
  </html>
 </xsl:template>
 <xsl:template match="会員データ">
  <tr>
   <td><xsl:value-of select="./番号"/></td>
   <td><xsl:value-of select="./氏名"/></td>
   <td><xsl:value-of select="./住所"/></td>
  </tr>
 </xsl:template>
</xsl:stylesheet>

■ sam04.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=shift_jis">
<title>XSLTスタイルシートを読み込む</title>
<script language="JavaScript">
function Test()
{
var obXSLT = new ActiveXObject('microsoft.XMLDOM');
obXSLT.async = false;
obXSLT.load('xslt04.xsl');
var obXML = new ActiveXObject('microsoft.XMLDOM');
obXML.async = false;
obXML.load('samp04.xml');
hyouji.innerHTML = obXML.transformNode(obXSLT);
}
</script>
</head>

<body onload="Test()">
<div id="hyouji"></div>
</body>
</html>

説明するまでもなく、「sam04.html」 でXSLTスタイルシートを読み込んで適用しています。

sam04.htmlの実行結果は以下のようになります。

番号 氏名 住所
1伸縮○二郎東京
2伸縮○美東京

■ XSLTスタイルシートの切り替え

■ XSLTスタイルシートを切り替える

今度は適用させるXSLTスタイルシートを切り替えて、表示スタイルを変化させてみます。 XSLTスタイルシートを2つ用意し、javascriptを利用してボタンをクリックする事により、 適用させるXSLTスタイルシートを変更する事で、ブラウザでの表示スタイルを変化させます。 なお、HTM文書内でjavascriptなどを使用してXML文書を扱う場合に、XML Data Island という機能を用います。この機能を利用する事で、XML文書を容易に扱う事が可能になります。

XML Data Island (XMLデータアイランド)
<xml id="識別名" src="ファイルのパス"></xml>  というように、HTML文書内で<xml>により、XML文書を定義する事で生成されるものを XMLデータアイランドと呼びます。このように生成されたXMLデータアイランドは、 DOMDocumentオブジェクトとして操作する事ができ、HTML文書内でスクリプトを使用して XML文書を簡単に扱う事が出来るようになります。なお、ここではあまり詳しくは説明しません。

では、例題を取り上げてみましょう。
以下の3つのファイルをご覧下さい。XML文書を「samp05.xml」、 XSLTスタイルシートを「xslt05a.xsl」「xslt05b.xsl」、 HTML文書を「sam05.html」 とします。

■ samp05.xml

<?xml version="1.0" encoding="shift_jis"?>
<会員>
<会員データ>
<番号>1</番号>
<氏名>伸縮○二郎</氏名>
<住所>東京</住所>
</会員データ>
<会員データ>
<番号>2</番号>
<氏名>伸縮○美</氏名>
<住所>東京</住所>
</会員データ>
</会員>

■ xslt05a.xsl

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="会員">
  <html>
   <body>
    <table border="1">
     <tr>
      <th>番号</th>
      <th>氏名</th>
      <th>住所</th>
     </tr>
     <xsl:apply-templates select="会員データ">
      <xsl:sort select="番号" data-type="number"/>
     </xsl:apply-templates>
    </table>
   </body>
  </html>
 </xsl:template>
 <xsl:template match="会員データ">
  <tr>
   <td><xsl:value-of select="./番号"/></td>
   <td><xsl:value-of select="./氏名"/></td>
   <td><xsl:value-of select="./住所"/></td>
  </tr>
 </xsl:template>
</xsl:stylesheet>

■ xslt05b.xsl

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="会員">
  <html>
   <body>
     <xsl:apply-templates select="会員データ"/>
   </body>
  </html>
 </xsl:template>
 <xsl:template match="会員データ">
  <p>
  <xsl:value-of select="./番号"/>
  <xsl:value-of select="./氏名"/>
  </p>
 </xsl:template>
</xsl:stylesheet>

■ sam05.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=shift_jis">
<title>XSLTスタイルシートの切り替え</title>
<xml id="xm" src="samp05.xml"></xml>
<xml id="st01" src="xslt05a.xsl"></xml>
<xml id="st02" src="xslt05b.xsl"></xml>

<script language="JavaScript">
function Obst01()
{
hyouji.innerHTML = xm.transformNode(st01.documentElement);
}
function Obst02()
{
hyouji.innerHTML = xm.transformNode(st02.documentElement);
}
</script>
</head>

<body>
<form>
<input type="button" value="会員データ" onClick="Obst01()">
<input type="button" value="会員名のみ" onClick="Obst02()">
</form>
<div id="hyouji"></div>
</body>
</html>

sam05.html」ファイルでは、 <xml>のidで適用させるXSLTスタイルシートの 数だけ、javascriptによって処理を記述しています。 javascriptで記述した処理を一つ一つのボタンに割り当てる事で、ボタンをクリックした時に ボタンに割り当てられた処理に応じたスタイルシートを適用します。

javascript内の記述では、「st01.documentElement」 「st02.documentElement」は idにしたがって、それぞれ「xslt05a.xsl」 「xslt05b.xsl」の内容になります。 ボタンを押す事によりjavascriptの関数を呼び出し、その関数によって処理されたXML文書のデータの結果が、 <div>要素のid属性である 「hyouji」に渡されてウィンドウの画面に表示されます。

sam05.htmlの実行結果は以下のようになります。

sam05HTMLファイルの表示結果


«««« back           next »»»»
 
XMLとは
XML文書作成の大まかな流れ
XML文書の記述
XML文書ブラウザでの表示
XSLTスタイルシートの適用
XSLTの構造
XML文書の宣言
文字コードの設定
タグ付けのルール
要素名・属性の指定について
階層構造
実体参照・文字参照について
その他・コメントや処理
DTDの記述
名前空間の指定
情報をデータ化する
階層構造の作成
データからXML文書を作成する
会員情報の記述ルールを定義したDTD..
個々のXML文書を作成する
外部実体参照
テンプレートルール
XSLTスタイルシートを記述する 【ノード】
構造を変換する仕組み
テンプレートルールの定義
テンプレートの動作確認
XPathの仕組み  【XPathの関数】
XPathの表記方法
テキストの抽出  xsl:value-of
ノードのコピー  xsl:copy-of
テキストの生成  xsl:text
コメントの生成  xsl:comment
要素の生成  xsl:element
属性の生成  xsl:attribute
属性値の生成  【属性値テンプレート】
出力方法の指定  xsl:output
変数1  xsl:variable
変数2  xsl:param
変数3  xsl:with-param
繰り返し処理  xsl:for-each
再帰処理  xsl:if test
データの並べ替え  xsl:sort
データに番号をつけて出力  xsl:number
条件式に一致時のみ変換処理を実施 xsl:if
複数条件を設定して処理 xsl:choose
XSLTに別のXSLT.. xsl:import xsl:include
XSLT関数について
データを1件表示
データを決められた件数だけ表示
テキストと要素混在時のテキスト抽出法
データを全て表示する
表示するデータを並べ替える
条件式を設定して表示を変える
データを表にして表示する
複数件のデータを1つの表にして表示
リンクを加える  xsl:element xsl:attribute
データをCSV形式で出力する
DOM(Document Object Model)
DOMとjavascript
ノードにアクセスする
ノードにアクセスする 2
ノードにアクセスする 3
XSLTスタイルシートを読み込む
XSLTスタイルシートの切り替え
DOMとjavascriptで検索機能を作成する 1
DOMとjavascriptで検索機能を作成する 2
DOMとjavascriptで検索機能を作成する 3
DOMとjavascriptで検索機能を作成する (XSLTスタイルシート適用)
SVG(Scalable Vector Graphics)
SVG(Scalable Vector Graphics)の基本
「g」タグによるグループ化
図形の座標変換 transform属性
アニメーションを作成する animate要素
アニメーションを作成する animate要素2
イベント
DOMとJavaScriptを使用したイベント処理
XMLとXSLTからSVGを生成する
msxsl.exeのオプション
エラーメッセージの表示
LINK
XML(eXtensible Markup Language) バナーはダウ
ンロードして
お使い下さい。




Copyright © 2004 - ykr414 . All Rights Reserved.