XSLT - การแปลงร่าง
ตัวอย่างการศึกษา: วิธีการแปลง XML เป็น XHTML โดยใช้ XSLT?
รายละเอียดของตัวอย่างนี้จะอธิบายในบทต่อไป
ประกาศสไตล์ชีตที่ถูกต้อง
องค์ประกอบรูทที่ประกาศว่าเอกสารเป็นสไตล์ชีต XSL คือ <xsl:stylesheet> หรือ <xsl:transform>
หมายเหตุ: <xsl:stylesheet> และ <xsl:transform> มีความหมายเหมือนกันทั้งหมดและสามารถใช้ได้!
วิธีที่ถูกต้องในการประกาศสไตล์ชีต XSL ตามคำแนะนำของ W3C XSLT คือ:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
หรือ:
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
ในการเข้าถึงองค์ประกอบ แอตทริบิวต์ และคุณสมบัติ XSLT เราต้องประกาศเนมสเปซ XSLT ที่ด้านบนสุดของเอกสาร
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ชี้ไปที่เนมสเปซ W3C XSLT อย่างเป็นทางการ หากคุณใช้เนมสเปซนี้ คุณต้องรวมแอตทริบิวต์ version="1.0" ด้วย
เริ่มต้นด้วยเอกสาร XML ดิบ
เราต้องการแปลงเอกสาร XML ต่อไปนี้ ("cdcatalog.xml") เป็น XHTML:
<?xml version="1.0" encoding="UTF-8"?>
<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 ใน IE, Chrome, Firefox, Safari และ Opera:เปิดไฟล์ XML (คลิกที่ลิงก์ด้านล่าง) - เอกสาร XML จะแสดงด้วยองค์ประกอบรากและองค์ประกอบย่อยที่มีรหัสสี (ยกเว้นใน Safari) มักจะมีเครื่องหมายบวก (+) หรือเครื่องหมายลบ (-) ทางด้านซ้ายขององค์ประกอบที่สามารถคลิกเพื่อขยายหรือยุบโครงสร้างองค์ประกอบได้ เคล็ดลับ: หากต้องการดูซอร์ส XML ดิบ ให้คลิกขวาในไฟล์ XML แล้วเลือก "ดูซอร์ส"!
สร้างสไตล์ชีต XSL
จากนั้น คุณสร้างสไตล์ชีต XSL ("cdcatalog.xsl") ด้วยเทมเพลตการแปลง:
<?xml version="1.0" encoding="UTF-8"?>
<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>Title</th>
<th>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 ของคุณ ("cdcatalog.xml"):
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
<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>
หากคุณมีเบราว์เซอร์ที่เข้ากันได้กับ XSLT มันจะแปลง XML ของคุณเป็น XHTML อย่างสวยงาม
รายละเอียดของตัวอย่างข้างต้นจะอธิบายในบทต่อไป