日期:2013-03-16  浏览次数:20518 次

    用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>