用PHP解析XSL
在php的应用当中,为做到数据和代码分离需要使用模板技术。pear、phplib及不少公司都提供了相关的模板。但他们有一个共同的缺点:就是没有统一的规范,给使用者带来很多不便。另外有关的教程和范例较少,也太初浅,不易做深层次的开发应用。
XSL是W3C组织的规范标准,随着XML的应用而发展起来。其教程随处可见,只要你有ie5就可使用。当然由于是新技术,在支持程度上尚显不足。
这里给大家介绍一种用用PHP解析XSL的方法。该方法仅使用PHP提供的XML函数,无须难以配置的XSLT。
先看一下例子。
将以下内容保存为resume.xml
<?xml version="1.0" encoding="GB2312"?>
<?xml:stylesheet type="text/xsl" href="resume2.xsl"?>
<document>
<resume>
<alias>唠叨</alias>
<name>徐祖宁</name>
<sex>男</sex>
<birthday>1948.10</birthday>
<addr>安徽</addr>
<email>czjsz_ah@stats.gov.cn</email>
<icq> </icq>
<oicq> </oicq>
<skill>C/C++、VFP、PHP、JavaScript</skill>
<homepage> </homepage>
<date>2001-7-19</date>
</resume>
<resume>
<alias>刁馋</alias>
<name>保密</name>
<sex>男</sex>
<birthday> </birthday>
<addr>黑龙江</addr>
<email>yuepengfei@mail.banner.com.cn</email>
<icq>166581208</icq>
<oicq>7665656</oicq>
<skill> </skill>
<homepage> </homepage>
<date>2001-8-15</date>
</resume>
<resume>
<alias>sports98</alias>
<name>保密</name>
<sex>男</sex>
<birthday> </birthday>
<addr>四川</addr>
<email>flyruns@hotmail.com</email>
<icq>15787767</icq>
<oicq>11599322</oicq>
<skill> </skill>
<homepage>http://www.hiviresearch.com/cgi/report/</homepage>
<date>2002-1-5</date>
</resume>
</document>
将以下内容保存为resume1.xsl
<?xml version="1.0" encoding="GB2312"?>
<HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<HEAD>
<TITLE>个人简历</TITLE>
</HEAD><BODY>
<TABLE border="1" cellspacing="0" style="font-size:10pt">
<CAPTION style="font-size: 110%; font-weight: bold">
版主信息
</CAPTION>
<xsl:for-each select="document">
<TR>
<TH>别名</TH>
<TH>姓名</TH>
<TH>性别</TH>
<TH>所在地</TH>
<TH>专长</TH>
</TR>
<xsl:for-each select="resume">
<TR>
<TD><xsl:value-of select="alias"/></TD>
<TD><xsl:value-of select="name"/></TD>
<TD><xsl:value-of select="sex"/></TD>
<TD><xsl:value-of select="addr"/></TD>
<TD><xsl:value-of select="skill"/></TD>
</TR>
</xsl:for-each>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
将以下内容保存为resume2.xsl
<?xml version="1.0" encoding="GB2312"?>
<HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<HEAD>
<TITLE>个人简历</TITLE>
</HEAD>