XSLT初学最简单例子
最近了解了下XSLT,写了个简单的例子,很简单,不过对从来没接触过XSL的新手来说,足够了。
一共三个文件:xsl,xml,html,放在同一目录下就可以了。
用浏览器打开xml文件和html文件,效果是一样的。(IE 6.0+)
------------------ test.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>
<head>
<title>First XSLT example</title>
</head>
<body>
<table border="1" width="300" align="center">
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
</tr>
<xsl:for-each select="test/people">
<xsl:sort select="id"/>
<xsl:if test="age!=0">
<xsl:choose >
<xsl:when test="age>20">
<tr>
<td><xsl:value-of select="id"/></td>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="age"/></td>
</tr>
</xsl:when>
<xsl:otherwise>
<tr bgcolor="red">
<td><xsl:value-of select="id"/></td>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="age"/></td>
</tr>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:for-each>
</table>
<br/>
<table border="3" width="300" align="center">
<xsl:apply-templates/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="people">
<tr align="center">
<td style="color:green">
<xsl:apply-templates select="id"/>
</td>
<td style="color:violet">
<xsl:apply-templates select="name"/>
</td>
<td style="color:blue">
<xsl:apply-templates select="age"/>
</td>
</tr>
</xsl:template>
<xsl:template match="id">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="name">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="age">
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
---------------------- test.xml -----------------------------------
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<test>
<people>
<id>1</id>
<name>lexy</name>
<age>23</age>
</people>
<people>
<id>3</id>
<name>some 3</name>
<age>20</age>
</people>
<people>
<id>2</id>
<name>some</name>
<age>18</age>
</people>
<people>
<id>5</id>
<name>some 5</name>
<age>0</age>
</people>
<people>
<id>4</id>
<name>some 4</name>
<age>25</age>
</people>
<people>
<id>6</id>
<name>some 6</name>
<age>24</age>
</people>
</test>
-------------------------- test.html ------------------------------------
<html>
<body>
<script type="text/javascript">
// Load XML
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("test.xml")
// Load XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("test.xsl")
// Transform
document.write(xml.transformNode(xsl))
document.write('Transform XML by javascript!');
</script>
</body>
</html>
参考:
http://www.w3school.com.cn/xsl/index.asp