Как объявить и выполнить итерации массива в XSLT?

Я исправил это, удалив встроенные двоичные файлы в проекте. Для этого:

  1. Откройте рабочее пространство / проект в Xcode.
  2. Перейдите к фактическому файлу проекта (с лентой «Общие», «Возможности» и т. Д.).
  3. Перейдите в «Общие»> «Встроенные двоичные файлы», удалите их, выбрав те из них, которые вам не нужны, и затем нажмите знак «минус».

Примечание 1. Вам не нужно удалять их из раздела «Связанные фреймворки и библиотеки» (они должны автоматически удаляться при удалении их из «Встроенных двоичных файлов»).

Примечание 2: у меня много зависимостей, и я использую CocoaPods. У меня ничего нет во «Встроенных двоичных файлах» и только «Pods_ [YourApplicationName] .framework» в разделе «Связанные фреймворки и библиотеки».

10
задан victor hugo 22 May 2009 в 22:27
поделиться

2 ответа

Один из способов сделать это - встроить данные состояния в саму таблицу стилей и получить доступ к документу таблицы стилей, используя документ ('') , как показано ниже:

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:my="whatever"
  exclude-result-prefixes="my">

  <xsl:output indent="yes"/>

  <!-- The value of the state you want to select, supplied in the input XML -->
  <xsl:variable name="selected-state" select="/xpath/to/state/value"/>

  <!-- You have to use a namespace, or the XSLT processor will complain -->
  <my:states>
    <option>Alabama</option>
    <option>Alaska</option>
    <!-- ... -->
    <option>Wisconsin</option>
    <option>Wyoming</option>
  </my:states>

  <xsl:template match="/">
    <!-- rest of HTML -->
    <select name="state">
      <!-- Access the embedded document as an internal "config" file -->
      <xsl:apply-templates select="document('')/*/my:states/option"/>
    </select>
    <!-- rest of HTML -->
  </xsl:template>

          <!-- Copy each option -->
          <xsl:template match="option">
            <xsl:copy>
              <!-- Add selected="selected" if this is the one -->
              <xsl:if test=". = $selected-state">
                <xsl:attribute name="selected">selected</xsl:attribute>
              </xsl:if>
              <xsl:value-of select="."/>
            </xsl:copy>
          </xsl:template>

</xsl:stylesheet>

Дайте мне знать, если у вас возникнут вопросы.

12
ответ дан 3 December 2019 в 23:51
поделиться

В идеале вы должны сохранить список состояний в своем XML-файле и просто использовать XSLT для их итерации.

Обновить : Если вы не можете редактировать XML, вы можете использовать функцию документа для загрузки данных из второго файла данных:

1
ответ дан 3 December 2019 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: