XSL 1.0 - Comment l'utiliser pour-chaque-dessus d'une sous chaîne

À l'aide de XSL 1.0, j'ai trouvé un beau marquer la fonction. Maintenant, j'ai besoin de pour-chaque-dessus de la résultante des jetons. Je suis très nouveau à XSL.

Le php équivalent de ce dont j'ai besoin:

$in = 'a,b,c,d';
$tokens = explode (',', $in);
foreach ($tokens as $token) {
  echo $token;
}

Voici ce que j'ai jusqu'à présent. Cette ligne de sortie a,b,c,d'-

<xsl:value-of select="@CommaSeparated" />

Cela va faire tourner la chaîne à travers le marquer fonction-

  <xsl:call-template name="tokenize">
    <xsl:with-param name="pText" select="@CommaSeparated"/>
  </xsl:call-template>

Et le marquer de la fonction. Je comprends que ce n'est tout simplement pas le format des données qu'il crache-

<xsl:template name="tokenize">
  <xsl:param name="pText"/>

  <xsl:if test="string-length($pText)">
    <tag>
      <xsl:value-of select=
       "substring-before($pText, ',')"/>
    </tag>

    <xsl:call-template name="tokenize">
      <xsl:with-param name="pText" select=
       "substring-after($pText, ',')"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template>
  • Alors, quelle est exactement votre question?
  • Demandez-vous si XSLT prend en charge pour chaque? Oui, il n' - xsl:for-each, thoguh il est à éviter en faveur de l'affectation de modèle, si possible.
  • Pour l'enregistrement, ce que j'ai fini par faire, c'est écrit à plusieurs Marquer comme des fonctions qui ne le diviser et de sortie. Ainsi, le modèle " Tokenize_Links prendrait 'a, 'b', c' et de sortie '<a>a</a>, <a>b</a>, etc".
InformationsquelleAutor user1472408 | 2012-06-21