1

私は XSLT が初めてなので、誰かが助けてくれることを願っています :)

求人フィードにアクセスできます: https://www.myjobscotland.gov.uk/edinburghhotjobs/

.net を使用して、クエリ文字列が null または空であるかどうかを確認し、パネルの可視性を設定して、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, &quot;###,###.00&quot;)" />
                  - £
                  <xsl:value-of select="format-number(SalaryTo, &quot;###,###.00&quot;)" />
               </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 は、完全なジョブの説明を表示します。

singlejob.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']">

または

渡してから、questring 値にアクセスできますか?

XSLTransformFileLocation="~/assets/singlejob.xslt?refnum=abc123"

.

どうすればいいですか?

申し訳ありませんが、かなり長い投稿です。

ありがとう

4

0 に答える 0