Как показать список лет в xslt 2.0? - PullRequest
0 голосов
/ 03 октября 2018

Я новичок в xslt и javascript.Я указал текущую дату в поле ввода, используя xslt 2.0

<input id="date" type="date" class="input">
                    <xsl:attribute name="value">
                        <xsl:value-of select="format-date(current-date(),
                      '[Y0001]-[M01]-[D01]')"/>
                    </xsl:attribute>
                </input>

, но теперь я хочу показать список годов в раскрывающемся списке, годы должны быть текущим годом с задним числом 10 лет, например [2018,2017,2016 ,..] вот так

но я не могу динамически генерировать массив лет, я думаю, что мы можем сделать это с помощью .js, пожалуйста, помогите мне реализовать это.

В настоящее время я показываю годы из xmlтакой файл.

<select  class="select">
                        <xsl:for-each select="element/year/option">
                            <option value="{.}"><xsl:value-of select="."/></option>
                        </xsl:for-each>
                    </select>

Заранее спасибо !!!

1 Ответ

0 голосов
/ 03 октября 2018

Предполагая, что вы используете XSLT 2 или 3 (как показывает тег и пример), вы используете код, подобный

      <xsl:variable name="current-year" as="xs:integer" select="year-from-date(current-date())"/>
      <select name="year">
          <xsl:for-each select="reverse($current-year - 9 to $current-year)">
              <option value="{.}">{.}</option>
          </xsl:for-each>
      </select>

например, https://xsltfiddle.liberty -development.net / bFDb2CT output

<select name="year">
         <option value="2018">2018</option>
         <option value="2017">2017</option>
         <option value="2016">2016</option>
         <option value="2015">2015</option>
         <option value="2014">2014</option>
         <option value="2013">2013</option>
         <option value="2012">2012</option>
         <option value="2011">2011</option>
         <option value="2010">2010</option>
         <option value="2009">2009</option></select>

В этих примерах используется шаблон текстового значения XSLT 3, но в XSLT 2 вместо него будет использоваться <option value="{.}"><xsl:value-of select="."/></option>.

...