利用xsl可以做到将数据和格式完全分离,下面比较一个xml+css和xml+xsl的区别。
XML + css
resume.xml文件内容如下:
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/css" href="resume.css"?>
<resume>
<name>禹希初</name>
<sex>男</sex>
<birthday>1977.5</birthday>
<skill>数据库设计与维护、WEB开发</skill>
</resume>
resume.css文件内容如下:
resume{ display: block;}
name{ display: block; font-size:120%;}
sex{ display:block; text-indent:2em}
birthday{ display:block; text-indent:2em}
skill{ display:block; text-indent:2em}
效果:
XML + xsl
resume.xml文件内容如下:
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="resume.xsl"?>
<resume>
<name>禹希初</name>
<sex>男</sex>
<birthday>1977.5</birthday>
<skill>数据库设计与维护、WEB开发</skill>
</resume>
resume.xsl文件内容如下:
<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>个人简历</title>
</head><body>
<xsl:for-each select="resume">
<p/>
<table border="1" cellspacing="0">
<caption style="font-size: 150%; font-weight: bold">
个人简历
</caption>
<tr>
<th>姓名</th><td><xsl:value-of select="name"/></td>
<th>性别</th><td><xsl:value-of select="sex"/></td>
<th>生日</th><td><xsl:value-of select="birthday"/></td>
</tr>
<tr>
<th>技能</th><td colspan="5"><xsl:value-of select="skill"/></td>
</tr>
</table>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
效果:
参考:
http://justcoding.iteye.com/blog/778361
http://www.w3school.com.cn/xsl/xsl_for_each.asp