XSLT บนลูกค้า

ถ้าเครื่องเลือกเซิร์ฟเวอร์ของคุณสนับสนุน XSLT แล้ว มันสามารถใช้ในเครื่องเลือกเซิร์ฟเวอร์เพื่อแปลงเอกสารเป็น XHTML

ยาง JavaScript

ในบทบาทก่อนหน้านี้ เราได้มีการเล่าว่าว่าจะใช้ XSLT ที่จะแปลงเอกสาร XML ให้เป็น XHTML. เราได้ทำงานนี้ด้วยวิธีต่อไปนี้: ที่จะเพิ่ม XSL สไตล์เซ็ตในเอกสาร XML และทำการแปลงด้วยเครื่องเลือกเซิร์ฟเวอร์

แม้ว่าวิธีนี้จะทำงานดี แต่การเก็บการอ้างอิงสไตล์เซ็ตในเอกสาร XML ไม่จะดีเสมอ (เช่น วิธีนี้จะไม่ทำงานถ้าเครื่องเลือกเซิร์ฟเวอร์ไม่รับ XSLT)

วิธีที่สามารถที่สุดคือใช้ JavaScript ที่จะทำการแปลง

ด้วยการใช้ JavaScript สามารถ:

  • ทำการตรวจสอบการประเมินทางเครื่องเลือกเซิร์ฟเวอร์
  • ใช้สไตล์เซ็ตตามต้องการของเครื่องเลือกเซิร์ฟเวอร์และผู้ใช้

นี่คือความศรีมงคลของ XSLT!หนึ่งในวัตถุประสงค์ของการออกแบบ XSLT คือที่จะทำให้การแปลงรูปแบบจากแบบหนึ่งไปยังแบบอื่นเป็นไปได้ และสนับสนุนประเภทเครื่องเลือกเซิร์ฟเวอร์และความต้องการของผู้ใช้ต่าง ๆ

การแปลง XSLT บนส่วนของเครื่องนอกจะเป็นหนึ่งในงานหลักที่เครื่องเลือกเซิร์ฟเวอร์จะทำในอนาคต และเรายังจะเห็นการเติบโตของมันในตลาดเครื่องเลือกเซิร์ฟเวอร์เฉพาะ (หนังสือเสียง, โปรเจค์เตอร์เครื่องพิมพ์, อุปกรณ์ไฮแฟร์, และอื่น ๆ)

เอกสาร XML และ XSL

ดูเอกสาร 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>

ดูเอกสาร XML นี้

และเอกสาร 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 นี้

โปรดระวังว่าไฟล์ XML นี้ไม่มีการอ้างอิงไฟล์ XSL

ความสำคัญ:คำนี้หมายความว่าไฟล์ XML สามารถใช้ XSL รูปแบบที่ต่างกันมาแปลงได้หลายรูปแบบ

แปลง XML ให้เป็น XHTML ในเว็บเบราเซอร์

นี่คือรหัสที่ใช้ในการแปลงไฟล์ XML ให้เป็น XHTML บนลูกค้าเครื่องประมวลผล

<html>
<body>
<script type="text/javascript">
// Load XML 
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("cdcatalog.xml")
// Load XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("cdcatalog.xsl")
// Transform
document.write(xml.transformNode(xsl))
</script>
</body>
</html>

คำเตือน:หากคุณไม่ทราบว่าจะเขียน JavaScript โปรดเรียนตัวสอนของเราที่《JavaScript ตัวสอน》。

รหัสแรกสร้างตัวอย่างของ XML 解析器 ของ Microsoft และนำไฟล์ XML ส่งเข้าเก็บในความจำสำหรับรหัสที่สองสร้างตัวอย่างของประมวลเกณฑ์อีกตัวและนำไฟล์ XSL ส่งเข้าเก็บในความจำ และบรรทัดสุดท้ายใช้เอกสาร XSL ที่แปลง XML และแสดงผลที่เป็น XHTML ในเว็บเบราเซอร์ งานเสร็จแล้ว!

請看它在 IE 中如何工作