1

リンクのリストを生成する必要があります。最大値として、ページ付けを行います。

例:この変数は、リンクの最大数を抽出します。

  <xsl:variable name="countPages" 
         select="substring-after(substring-before(
                     //x:div[@class='navBarBottomText']/x:span, ')'), 'till ' )" />

この場合は30です。この値はリンクの合計です。

ファイルXSLT:

  <xsl:template match="//x:div[@class='navBarBottomText']" >
    <xsl:call-template name="paginator"/>
  </xsl:template>
  <xsl:template name="paginator">
    <xsl:param name="pos" select="number(0)"/>
    <xsl:choose>
      <xsl:when test="not($pos >= countPages)">
        <link href="{concat('localhost/link=' + $pos)}" />
        <xsl:call-template name="paginator">
          <xsl:with-param name="pos" select="$pos + 1" />
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise/>
    </xsl:choose>
  </xsl:template>

結果は次のようになります。

<link href="localhost/link=0" />
<link href="localhost/link=1" />
<link href="localhost/link=2" />
<link href="localhost/link=3" />
<link href="localhost/link=4" />
<link href="localhost/link=5" />
<link href="localhost/link=6" />
.....

いくつかのパラメータがありませんか?ありがとう。

4

1 に答える 1

1

これはあなたが望む方法で行うことができます-適切な変数参照を使用するだけです:

置換

<xsl:when test="not($pos >= countPages)">

<xsl:when test="not($pos >= $countPages)">

ここでは、変数$countPagesがグローバルに定義されている(表示されている)と仮定します。


非再帰的なソリューション

<xsl:variable name="vDoc" select="document('')"/>

<xsl:for-each select=
  "($vDoc//node() | $vDoc//@* | $vDoc//namespace::*)[not(position() >= $countPages)]">

  <link href="localhost/link={position() -1}" />
</xsl:for-each>
于 2013-03-24T15:09:28.010 に答える