XSLTクライアント
ブラウザが XSLT をサポートしている場合は、それを使用してブラウザ内でドキュメントを XHTML に変換できます。
JavaScript ソリューション
前の章では、XSLT を使用して XML ドキュメントを XHTML に変換する方法を説明しました。これを実現するには、XSL スタイルシートを XML ファイルに追加し、ブラウザを通じて変換を完了します。このアプローチがうまく機能したとしても、XML ファイルにスタイルシート参照を含めることは必ずしも満足のいくものではありません (たとえば、このアプローチは XSLT を理解できないブラウザーでは機能しません)。
より一般的な方法は、JavaScript を使用して変換を完了することです。
JavaScript を使用すると、次のことが可能になります:
ブラウザ検証テストを実行する
ブラウザとユーザーのニーズに基づいて異なるスタイルシートを使用する
これが XSLT の利点です。 XSLT の設計目標の 1 つは、さまざまな種類のブラウザーやさまざまなユーザー ニーズをサポートしながら、データをある形式から別の形式に変換できるようにすることです。
クライアントサイドの XSLT 変換は、将来的にブラウザーによって実行される主要なタスクの 1 つになることは間違いなく、特定のブラウザー市場 (点字、聴覚ブラウザー、ネットワーク プリンター、ハンドヘルド デバイスなど) でもその成長が見られるでしょう。
XML ファイルと XSL ファイル
前の章で示したこの XML ドキュメントをご覧ください:
< ;catalog> ;
<cd>
<title>エンパイア バーレスク</title>
<アーティスト>ボブ・ディラン</アーティスト>
<国>アメリカ</国>
<会社>コロンビア</会社>
<価格>10.90価格>
<年>1985年年>
</cd>
.
.
</カタログ>
XML ファイルを参照してください。
および付属の XSL サンプル式表:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<本体>
<h2>私の CD コレクション</h2>
<テーブルボーダー="1">
<tr bgcolor="#9acd32">
<th align="left">タイトル</th>
<th align="left">アーティスト</th>
</tr>
<xsl:for-each select="カタログ/CD">
<tr>
<td><xsl:value-of select="title" /></td>
<td><xsl:value-of select="アーティスト" /></td>
</tr>
</xsl:for-each>
</表>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
XSL ドキュメントを参照してください。
注意、この XML ドキュメントには XSL ドキュメントへの参照が含まれていません。
重要事項: 上のこれは、XML ファイルが変換を実行するために複数の異なる XSL サンプル式テーブルを使用できることを意味します。
ブラウザ内で XML を XHTML に変換します。转换 for XHTML 的资源代码:
实例<html>
<head>
<script>
function loadXMLDoc(dname)
{
if (window.ActiveXObject)
{
xhttp=new ActiveXObject("Msxml2.XMLHTTP.3.0");
}
else
{
xhttp=new XMLHttpRequest();
}
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}
function displayResult()
{
xml=loadXMLDoc("cdcatalog.xml");
xsl=loadXMLDoc("cdcatalog.xsl");
// code for IE
if (window.ActiveXObject)
{
ex=xml.transformNode(xsl);
document.getElementById("example").innerHTML=ex;
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
resultDocument = xsltProcessor.transformToFragment(xml,document);
document.getElementById("example").appendChild(resultDocument);
}
}
</script>
</head>
<body onload="displayResult()">
<div id="example"></div>
</body>
</html>
运行实例 »点击 "运行实例" 按钮查在在线实例
ヒント: JavaScript の書き方がわからない場合は、JavaScript チュートリアルを読んでください。
例の説明:
loadXMLDoc()関数
loadXMLDoc()関数は、XMLおよびXSLファイルをロードするために使用されます。
ユーザーが使用しているブラウザの種類と、ファイルがロードされたブラウザの種類を確認します。
displayResult() 関数
この関数は、スタイルを定義する XSL ファイルを使用して XML ファイルを表示するために使用されます。
XML をロードし、
スタイルが適用された XML ドキュメントを含むように現在のドキュメントの本文 (id="example") を設定します
- ユーザーのブラウザが ActiveX オブジェクトをサポートしていない場合:
- 新しい XSLTProcessor オブジェクトを作成し、XSL ファイルをインポートします
- transformToFragment() メソッドを使用して、XSL スタイル シートを XML ドキュメントに適用します
現在のドキュメントの本文を設定します (id= example") スタイルが適用された XML ドキュメントを含めます