XSLT - サーバーサイド
すべてのブラウザが XSLT をサポートしているわけではないため、別の解決策としてサーバー上で XML から XHTML への変換を行います。
クロスブラウザソリューション
前の章では、ブラウザで XSLT を使用して XML から XHTML への変換を行う方法について説明しました。XML パーサーを使用して変換を行う JavaScript を作成しました。JavaScript による解決策は、XML パーサーを持たないブラウザでは機能しません。XML データをあらゆる種類のブラウザで利用できるようにするには、サーバー上で XML ドキュメントを変換し、それを XHMTL としてブラウザに送信する必要があります。
これが XSLT のもう一つの利点です。XSLT の設計目標の一つは、サーバー上でデータをある形式から別の形式に変換することを可能にし、あらゆる種類のブラウザに読み取り可能なデータを返すことです。
XML ファイルと XSLT ファイル
前の章で紹介したこの XML ドキュメントを見てください:
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>
。
および付属の XSL スタイルシート:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9ACD32">
<th style="text-align:left">Title</th>
<th style="text-align:left">Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title" /></td>
<td><xsl:value-of select="artist" /></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
。
この XML ファイルには XSL ファイルへの参照が含まれていないことに注意してください。
重要な注意点:上記のことは、XML ファイルが複数の異なる XSL スタイルシートを使用して変換できることを意味します。
サーバー上で XML を XHTML に変換する
サーバー上で XML ファイルを XHTML に変換するためのソースコードは次のとおりです:
PHP コードを使用した変換:
<?php
// 载入 XML 文件
$xml = new DOMDocument;
$xml->load('cdcatalog.xml');
// 载入 XSL 文件
$xsl = new DOMDocument;
$xsl->load('cdcatalog.xsl');
// 设置转换
$proc = new XSLTProcessor;
// 添加 xsl 规则
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
?>
ヒント:PHP の書き方がわからない場合は、次の内容を学習できます:PHP チュートリアル。
ASP コードを使用した変換:
<%
'载入 XML 文件
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'载入 XSL 文件
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'转换文件
Response.Write(xml.transformNode(xsl))
%>
ヒント:ASP の書き方がわからない場合は、次の内容を学習できます:ASP チュートリアル。
最初のコードは、マイクロソフトの XML パーサー(XMLDOM)のインスタンスを作成し、XML ファイルをメモリに読み込みます。2 番目のコードは、パーサーの別のインスタンスを作成し、この XSL ファイルをメモリに読み込みます。最後のコード行は、XSL ドキュメントを使用して XML ドキュメントを変換し、結果を XHTML としてブラウザに送信します。素晴らしい!
。
他の拡張