XSL
HTML vs XML
HTML标记只是简单的表示内容的显示形式,而与表示的内容没有任何关联,为文档的进一步处理带来极大的不便。
<HTML>
<BODY>
<TABLE border=1 cellspacing=0>
<TH>姓名<TD>禹希初<TH>性别<TD>男<TH>生日<TD>1977.5
<TR>
<TH>技能<TD colspan=5>数据库设计与维护、WEB开发
</TABLE>
</BODY>
</HTML>
在这里,我们无法从标记TH、TD得知其内容表示什么,如果用XML,相应的文档(文件名:个人简历.xml)就可写成如下形式:
<?xml version="1.0" encoding="GB2312"?>
<resume>
<name>禹希初</name>
<sex>男</sex>
<birthday>1977.5</birthday>
<skill>数据库设计与维护、WEB开发</skill>
</resume>
XML是一种元标记语言,没有许多固定的标记,为WEB开发人员提供了更大的灵活性,为用计算机处理文档提供了极大的方便。
由于XML并没有为标记规定显示方式,需要另建一个格式文件(css, xsl, xslt)说明各个标记的显示方式。
结论:HTML将数据内容与表现融为一体,可修改性、数据可检索性差,而XML借鉴了HTML与数据库、程序语言的优点,将内容与表现分开,不仅使检索更为方便,更主要的是用户之间数据的交换更加方便,可重用性更强。
XSL
XML在更多的时候只是一种数据文件,怎样将它变为我们日常所看到的HTML格式那样的文件呢?如果我们将XML文件比作结构化的原料的话,那么XSL就好像"筛子"与"模子",筛子选取自己需要的原料,这些原料再通过模子形成最终的产品:HTML。
我们先设计好表现的页面,再将其中需要从XML中获取数据来填充内容的部分"挖掉",然后用XSL语句从XML中筛出相关的数据来填充。一言以譬之:这XSL实际上就是HTML的一个"壳子",XML数据利用这个"壳"来生成"传统"的HTML。
制作模子:可以用excel或其他支持html的设计工具来
筛子:
<?xml version="1.0" encoding="Shift_JIS"?>
<HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:for-each select="resumeList">
<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>
</xsl:for-each>
</HTML>
数据: 我们一般通过序列化或者程序写的方式建立xml.
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="resume.xsl"?>
<resumeList>
<resume>
<name>小禹</name>
<sex>春</sex>
<birthday>秋</birthday>
</resume>
<resume>
<name>小禹2</name>
<sex>春2</sex>
<birthday>秋2</birthday>
</resume>
</resumeList>
结果就是报表了:
更详细信息见:http://www.w3school.com.cn/html/index.asp,http://www.w3school.com.cn/xsl/xsl_languages.asp