Tutorial XSLTlogin
Tutorial XSLT
pengarang:php.cn  masa kemas kini:2022-04-20 15:02:22

Pelanggan XSLT



Jika penyemak imbas anda menyokong XSLT, ia boleh digunakan dalam penyemak imbas untuk menukar dokumen kepada XHTML.


JavaScript Solution

Dalam bab sebelumnya, kami telah menerangkan kepada anda cara menggunakan XSLT untuk menukar dokumen XML kepada XHTML. Kami mencapai ini dengan menambahkan lembaran gaya XSL pada fail XML dan melengkapkan transformasi melalui penyemak imbas.

Walaupun pendekatan ini berfungsi dengan baik, termasuk rujukan lembaran gaya dalam fail XML tidak selalu memuaskan (contohnya, pendekatan ini tidak akan berfungsi dalam penyemak imbas yang tidak memahami XSLT).

Pendekatan yang lebih umum ialah menggunakan JavaScript untuk melengkapkan penukaran.

Dengan menggunakan JavaScript kami boleh:

  • Melakukan ujian pengesahan penyemak imbas

  • Gunakan mengikut pelayar dan keperluan pengguna Helaian gaya yang berbeza

Inilah daya tarikan XSLT! Salah satu matlamat reka bentuk XSLT adalah untuk membolehkan anda menukar data daripada satu format ke format lain, sambil menyokong pelbagai jenis penyemak imbas dan keperluan pengguna yang berbeza.

Transformasi XSLT sebelah pelanggan pasti akan menjadi salah satu tugas utama yang dilakukan oleh penyemak imbas pada masa hadapan, dan kami juga akan melihat pertumbuhannya dalam pasaran penyemak imbas tertentu (braille, pelayar auditori, pencetak rangkaian, peralatan pegang tangan, dll. .).


Fail XML dan fail XSL

Sila lihat dokumen XML ini yang ditunjukkan dalam bab sebelumnya:

<?xml version=" 1.0" encoding="ISO-8859-1"?>
<catalog>
, <cd>
' <title>Empire Burlesque</title>
' <artis>Bob Dylan</artis>
' <country>AS</country>
' <syarikat>Columbia</syarikat>
' <harga>10.90</harga>
' <tahun>1985</tahun>
, </cd>
.
.
</catalog>

查看 XML 文件。

以及附随的 XSL 样式表:

<?xml version="1.0" encoding="ISO-8859-t;1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template padankan="/">
   <html>
   <badan>
       <h2>Koleksi CD Saya</h2>
       <table border="1">
             <tr bgcolor="#9acd32">
                   <th align="left">Tajuk</th>
                   <th align="left">Artis</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 文件。

> XML ML 文件可使用多个不同的 XSL 样式表来进行转换。

在浏览器中把 XML 转换为 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>

运行 实例 »
点击" 运行 实例 "按钮 查看 在线 实例 实例 实例 实例 实例 实例 实例 实例 实例 实例 实例 实例

Petua: Jika anda tidak tahu cara menulis JavaScript, ikuti tutorial JavaScript kami.

Penjelasan contoh:

fungsi loadXMLDoc()

fungsi loadXMLDoc() digunakan untuk memuatkan fail XML dan XSL.

Ia menyemak jenis penyemak imbas yang pengguna miliki dan jenis penyemak imbas yang mana fail dimuatkan.

fungsi displayResult()

Fungsi ini digunakan untuk memaparkan fail XML menggunakan fail XSL untuk menentukan gaya.

  • Muat fail XML dan XSL

  • Uji jenis penyemak imbas yang dimiliki pengguna Penyemak imbas menyokong objek ActiveX:

  • Gunakan kaedah transformNode() untuk menggunakan helaian gaya XSL pada dokumen XML
    • Tetapkan dokumen semasa ( id="example") mengandungi XML dokumen dengan gaya digunakan

    • Jika penyemak imbas pengguna tidak menyokong objek ActiveX:
  • Buat objek XSLTPProcessor baharu dan import fail XSL
    • Gunakan kaedah transformToFragment() untuk menggunakan lembaran gaya XSL pada dokumen XML

    • Tetapkan badan dokumen semasa (id="example") untuk mengandungi dokumen XML dengan gaya yang digunakan