Latest web development tutorials

XSLT ในฝั่งเซิร์ฟเวอร์

เนื่องจากเบราว์เซอร์ไม่ได้ทั้งหมดสนับสนุน XSLT, การแก้ปัญหาอื่นที่จะเสร็จสิ้นการแปลงไปยัง XML บนเซิร์ฟเวอร์ของ XHTML ซึ่ง


วิธีการแก้ปัญหาเบราว์เซอร์

ในส่วนก่อนหน้านี้เราจะอธิบายวิธีการใช้ XSLT ผ่านเบราเซอร์เพื่อความสมบูรณ์ของ XML เพื่อการแปลง XHTML เราได้สร้างบางส่วนใช้ parser XML เพื่อแปลง JavaScript วิธีการแก้ปัญหา JavaScript ไม่ทำงานในเบราว์เซอร์ไม่มี parser XML

เพื่อให้ข้อมูล XML ที่ใช้บังคับกับประเภทของเบราว์เซอร์ใด ๆ เราต้องอยู่บนเซิร์ฟเวอร์สำหรับการแปลงเอกสาร XML แล้วส่งกลับไปยังเบราว์เซอร์เป็น XHMTL

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


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

ดูไฟล์ 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 สามารถใช้หลาย stylesheets XSL ที่แตกต่างกันในการแปลง


บนเซิร์ฟเวอร์แปลง XML เพื่อ XHTML

มันถูกใช้บนเซิร์ฟเวอร์ไปยังไฟล์ XML ในซอร์สโค้ด XHTML:

<%
'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

บล็อกแรกของรหัสสร้างตัวอย่างของไมโครซอฟท์ parser XML (XMLDOM) และไฟล์ XML ในหน่วยความจำ วรรคสองของรหัสที่สร้างอินสแตนซ์ของตัวแยกวิเคราะห์ที่อื่นและไปยังแฟ้ม XSL นี้ลงในหน่วยความจำ บรรทัดสุดท้ายของรหัสใช้เอกสาร XSL แปลงเอกสาร XML และส่งผลตามที่ XHTML เบราว์เซอร์ของคุณ ที่ดี!

วิธีการทำงาน