【发布时间】:2014-06-12 23:45:51
【问题描述】:
我是 xsl 模板的新手,但我还没有找到一种方法来做我想做的事。看起来这应该是可能的。
我想要的是为一个 xml 文件提供多个模板。我正在做一份在线简历,所以我有我的 resume.xml 文件。我想要我的 onlineResume.xsl 模板、我的 downloadWord.xsl 模板和我的 downloadPDF.xsl 模板。这三个模板将根据在主网页上选择的选项卡呈现。
现在我有以下作为测试。显然,正文并没有充实,但是我无法通过链接多个样式表,具体取决于所遵循的链接。我对 php、javascript/jquery、xsl、xml、xpath 或任何需要的东西持开放态度。我的网站是用 php 在服务器端开发的。
HTML 主页
<html>
<head></head>
<body>
<a href="./resume.xml">Online Resume</a>
<a href="./resume.xml">Download Word</a>
<a href="./resume.xml">Download PDF</a>
</body>
</html>
XML
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="onlineCV.xsl"?>
<resume>
<personal_info>
<birthdate>07/08/1988</birthdate>
</personal_info>
<jobs>
<job>
<company>Radio Shack</company>
<title>Sales Representative</title>
<startdate>01/01/2011</startdate>
<enddate>02/02/2011</enddate>
<duration>1.5yrs</duration>
<sortdate>20110101</sortdate>
</job>
<job>
<company>Radio Shack2</company>
<title>Sales Representative</title>
<startdate>01/01/2013</startdate>
<enddate>02/02/2013</enddate>
<duration>1.5yrs</duration>
<sortdate>20130202</sortdate>
</job>
</jobs>
</resume>
在线简历
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My Resume</h2>
<xsl:for-each select="resume/jobs/job">
<xsl:sort select="sortdate" data-type="number" order="descending" />
<div>
<xsl:value-of select="company" /> - <xsl:value-of select="title"/>
</div>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
下载单词
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My Word Download</h2>
<xsl:for-each select="resume/jobs/job">
<xsl:sort select="sortdate" data-type="number" order="descending" />
<div>
<xsl:value-of select="company" /> - <xsl:value-of select="title"/>
</div>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
下载 PDF
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My PDF Download</h2>
<xsl:for-each select="resume/jobs/job">
<xsl:sort select="sortdate" data-type="number" order="descending" />
<div>
<xsl:value-of select="company" /> - <xsl:value-of select="title"/>
</div>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
【问题讨论】:
标签: javascript php html xml xslt