XSLT 编辑 XML学习笔记

什么是XSLT?

XSLT(Extensible Stylesheet Language Transformations)是一种XML风格语言,用于将XML文档转换为其他格式。其主要用途是将XML文档转换为HTML、PDF、SVG等格式,可以使XML数据更加易于阅读和理解。

XSLT基本语法

XSLT的基本语法由标签和属性组成,其中最重要的标签是xsl:template。它定义了如何将输入文档转换为输出结果。以下是一个简单的XSLT模板示例:

xmlCopy Code
<?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>

XSLT实例演示

下面是一个更详细的示例,使用XSLT来转换一个包含学生信息的XML文档。

首先,假设我们有以下XML文件:

xmlCopy Code
<?xml version="1.0" encoding="UTF-8"?> <class> <student rollno="393"> <firstname>Keshav</firstname> <lastname>Kumar</lastname> <nickname>KK</nickname> <marks>80</marks> </student> <student rollno="392"> <firstname>Amit</firstname> <lastname>Sharma</lastname> <nickname>AS</nickname> <marks>70</marks> </student> <student rollno="391"> <firstname>Rahul</firstname> <lastname>Jain</lastname> <nickname>RJ</nickname> <marks>90</marks> </student> <student rollno="390"> <firstname>Rohit</firstname> <lastname>Gupta</lastname> <nickname>RG</nickname> <marks>85</marks> </student> </class>

然后,我们可以使用以下XSLT模板将其转换为HTML格式:

xmlCopy Code
<?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>Student Information</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Roll No.</th> <th>First Name</th> <th>Last Name</th> <th>Nickname</th> <th>Marks</th> </tr> <xsl:for-each select="class/student"> <tr> <td><xsl:value-of select="@rollno"/></td> <td><xsl:value-of select="firstname"/></td> <td><xsl:value-of select="lastname"/></td> <td><xsl:value-of select="nickname"/></td> <td><xsl:value-of select="marks"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>

经过XSLT的转换,我们得到以下HTML输出:

htmlCopy Code
<html> <body> <h2>Student Information</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Roll No.</th> <th>First Name</th> <th>Last Name</th> <th>Nickname</th> <th>Marks</th> </tr> <tr> <td>393</td> <td>Keshav</td> <td>Kumar</td> <td>KK</td> <td>80</td> </tr> <tr> <td>392</td> <td>Amit</td> <td>Sharma</td> <td>AS</td> <td>70</td> </tr> <tr> <td>391</td> <td>Rahul</td> <td>Jain</td> <td>RJ</td> <td>90</td> </tr> <tr> <td>390</td> <td>Rohit</td> <td>Gupta</td> <td>RG</td> <td>85</td> </tr> </table> </body> </html>

可以看到,通过XSLT的转换,我们将XML文档转换成了易于阅读和理解的HTML表格格式。