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表格格式。