サーバー側でのXSLT
ていないすべてのブラウザがXSLTをサポートしているため、別の解決策は、XHTMLのサーバー上のXMLへの変換を完了することです。
クロスブラウザのソリューション
前のセクションでは、XHTMLへの変換XMLを完了するために、ブラウザを介してXSLTを使用する方法について説明します。 我々はいくつかはJavaScriptを変換するためにXMLパーサを使用して作成しました。 JavaScriptの解決策はありませんXMLパーサーブラウザでは動作しません。ブラウザのいずれかのタイプにXMLデータを適用可能にするために、我々は、XML文書の変換のためのサーバー上にある必要があり、その後、XHMTLなどのブラウザに送り返さ。
これは、XSLTの別の利点です。 XSLTのための設計目標の1つは、ブラウザのすべてのタイプに読み取り可能なデータを返され、可能性としてある形式から別の形式に変換するために、サーバー上のデータを作ることでした。
XML文書とXSLTファイル
前のセクションでは、XML文書をオフに示してきた中でこれを見て:
<?xml version="1.0" encoding="ISO-8859-1"?>
<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>
<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="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th align="left">Title</th>
<th 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>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th align="left">Title</th>
<th 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>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
XMLファイルは、XSLファイルへの参照が含まれていませんので、あらかじめご了承ください。
重要:上記の文は意味、XMLファイルは変換するために、いくつかの異なるXSLスタイルシートを使用することができます。
サーバー上のXHTMLへのXMLを変換
これは、XHTMLソースコードにXMLファイルをサーバー上で使用されます。
<%
'Load XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Load XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform file
Response.Write(xml.transformNode(xsl))
%>
'Load XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Load XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform file
Response.Write(xml.transformNode(xsl))
%>
ヒント:ASPを記述する方法がわからない場合は、私たちの勉強できるASPのチュートリアルを 。
コードの最初のブロックは、メモリに、MicrosoftのXMLパーサー(XMLDOM)とXMLファイルのインスタンスを作成します。 コードの2番目の段落は、パーサーの別のインスタンスを作成し、このXSLファイルをメモリに。 コードの最後の行は、XSL文書変換のXML文書を使用して、ブラウザにXHTMLとして結果を送信します。 すばらしいです!