XSLT pada klien
Jika browser Anda mendukung XSLT, maka browser yang dapat digunakan untuk mengkonversi dokumen ke XHTML.
solusi JavaScript
Dalam bab sebelumnya, kita telah diajarkan cara menggunakan XSLT untuk mengubah dokumen XML menjadi XHTML. Kami melakukan ini melalui cara berikut: Ditambahkan XSL stylesheet ke file XML, dan menyelesaikan konversi melalui browser.Bahkan jika efek dari metode ini adalah sangat baik, referensi style sheet tidak selalu memuaskan (misalnya, dalam browser XSLT tidak mengakui pendekatan ini tidak akan bekerja) termasuk dalam file XML.
Pendekatan yang lebih umum adalah dengan menggunakan JavaScript untuk menyelesaikan konversi.
Dengan menggunakan JavaScript, kita dapat:
- Browser untuk tes konfirmasi
- Tergantung pada browser dan kebutuhan pengguna untuk menggunakan stylesheet yang berbeda
Ini adalah pesona XSLT! XSLT adalah salah satu yang dirancang untuk membuat data dari satu format ke format lain mungkin dan mendukung berbagai jenis browser dan kebutuhan pengguna yang berbeda.
Klien XSLT transformasi akan menjadi masa depan salah satu tugas utama yang dilakukan oleh browser, dan kita akan melihat pertumbuhan (Braille, browser aural, printer jaringan, perangkat genggam, dll) di pasar browser tertentu.
dokumen XML dan file XSL
Lihatlah ini di bagian sebelumnya telah menunjukkan off dokumen XML:
<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>
Dan menemani style sheet XSL:
<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>
Harap dicatat, file XML tidak berisi referensi ke file XSL.
PENTING: Kalimat di atas berarti, file XML dapat menggunakan beberapa stylesheet XSL yang berbeda untuk mengkonversi.
Dalam browser mengkonversi XML ke XHTML
Ini adalah untuk klien untuk file XML ke kode sumber XHTML:
contoh
<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" />
</body>
</html>
Coba »
Tip: Jika Anda tidak tahu bagaimana menulis JavaScript, silahkan belajar kami tutorial JavaScript .
Contoh menjelaskan:
loadXMLDoc () function
loadXMLDoc () adalah fungsi yang digunakan untuk memuat XML dan XSL file.
Ia memeriksa jenis browser dan pengguna harus memuat file.
displayResult () function
Fungsi ini digunakan untuk mendefinisikan file XML gaya tampilan menggunakan file XSL.
- Memuat XML dan XSL file
- pengguna tes memiliki jenis browser
- Jika dukungan browser ActiveX objek pengguna:
- Gunakan transformNode () metode stylesheet XSL untuk dokumen XML
- Mengatur dokumen saat (id = "contoh") berisi gaya tubuh telah diterapkan dokumen XML
- Jika browser pengguna tidak mendukung ActiveX benda:
- Membuat objek dan impor XSL baru file XSLTProcessor
- Gunakan transformToFragment () metode stylesheet XSL untuk dokumen XML
- Mengatur dokumen saat (id = "contoh") berisi gaya tubuh telah diterapkan dokumen XML