我是 XSLT 的新手,所以希望有人能帮忙:)
我们可以访问工作提要:https ://www.myjobscotland.gov.uk/edinburghhotjobs/
我使用 .net 检查查询字符串是否为空或为空,然后将面板的可见性设置为显示 jobs.xsl 或 singlejob.xsl。
.
如果查询字符串为空,则将拉出以下 jobs.xsl:
索引.aspx
<abc:XsltParser runat="server" ID="jobs" XSLTransformFileLocation="~/assets/jobs.xslt" InputXmlFileLocation="https://www.myjobscotland.gov.uk/edinburghhotjobs/" />
.
工作.xslt
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="1.0">
<xsl:output method="html" />
<xsl:template match="/">
<xsl:for-each select="jobs/job">
<xsl:sort select="PublishEndDate" order="ascending" />
<!-- Order by closing date -->
<xsl:if test="InternalOrExternal = 'External'">
<!-- Only show external jobs -->
<div class="job">
<div class="job-title">
<h4>
<a href="index.aspx?refnum={UniquePortalID}" title="View job details for '{PositionTitle}'">
<xsl:value-of select="PositionTitle" />
</a>
</h4>
</div>
<div class="job-refno">
Ref No.:
<xsl:value-of select="UniquePortalID" />
</div>
<div class="job-salary">
Salary: £
<xsl:value-of select="format-number(SalaryFrom, "###,###.00")" />
- £
<xsl:value-of select="format-number(SalaryTo, "###,###.00")" />
</div>
<div class="job-hours">
Hours:
<xsl:value-of select="HoursPerWeek" />
-
<xsl:value-of select="PositionType" />
</div>
<div class="job-closing">
Closing Date:
<xsl:value-of select="PublishEndDate" />
</div>
</div>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
我的jobs.xsl 文件循环遍历所有的工作并在页面上显示关键信息,即职位、薪水、截止日期等。
这个想法是,用户可以单击职位名称,他们将看到完整的职位详细信息。
<a href="index.aspx?refnum={UniquePortalID}" title="View job details for '{PositionTitle}'"><xsl:value-of select="PositionTitle"/></a>
.
如果查询字符串包含一个值,那么 singlejob.xsl 会被拉出:
index.aspx?refnum=abc123
<abc:XsltParser runat="server" ID="jobs2" XSLTransformFileLocation="~/assets/singlejob.xslt" InputXmlFileLocation="https://www.myjobscotland.gov.uk/edinburghhotjobs/" />
此 XSLT 将显示完整的工作描述:
单作业.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="1.0">
<xsl:output method="html" />
<xsl:template match="/">
<xsl:for-each select="jobs/job">
<xsl:sort select="PublishEndDate" order="ascending" />
<!-- Order by closing date -->
<xsl:if test="InternalOrExternal = 'External'">
<!-- Only show external jobs -->
<div class="job-detail">
<div class="job-title">
<h3>
<xsl:value-of select="PositionTitle" />
</h3>
</div>
<br />
<xsl:value-of select="description1" disable-output-escaping="yes" />
</div>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
.
问题是,我不知道如何让 singlejob.xslt 仅显示用户选择的作业,它当前打印出所有作业:(
有什么方法可以访问 singlejob.xslt 中的查询字符串吗?就像是
<xsl:if test="UniquePortalID = Querystring.value['refnum']">
或者
我可以通过然后访问查询值吗?
XSLTransformFileLocation="~/assets/singlejob.xslt?refnum=abc123"
.
我该怎么做呢?
对不起,这是一个很长的帖子。
谢谢