Question

J'ai un document xslt et je veux sortir une ancre (a) balise avec des attributs dont les valeurs dépendent d'autres choses .. Ainsi, j'utilise xsl: balise d'attribut avec un choix / si en dessous (ou vice versa). Donc, mon code ressemble à ceci:

<a href="/somepage.html">
  <xsl:if test="current_page='this_page'">
   <xsl:attribute name='class'>active</xsl:attribute>
  </xsl:if>
My Page
</a>

Cependant, le problème est alors, dans le code HTML de sortie, toutes les nouvelles lignes / espaces sont là, qui finit par faire mon lien ont un espace supplémentaire à la gauche de celui-ci (et il est souligné, ce qui rend évident). Donc, la solution évidente est de faire ceci:

<a href="/somepage.html"><xsl:if test="current_page='this_page'"><xsl:attribute name='class'>active</xsl:attribute></xsl:if>My Page</a>

pour se débarrasser de l'espace. Pas trop grand d'un accord dans le code ci-dessus, mais ma page réelle a beaucoup plus logique à elle, ce qui en fait vraiment laid. La seule autre chose que je peux penser à nettoyer cette place est de mettre la logique en dehors de la génération de lien, mais je répète des choses plus et d'avoir à créer plusieurs variables. Ce qui est raisonnable, mais pas encore tout à fait idéal. Ceci est juste un exemple où je voulais le faire, ses arrivé plusieurs autres fois alors je me demandais s'il y a d'autres façons de résoudre cela.

Était-ce utile?

La solution

Peut-être que vous pouvez utiliser cela au début du document XSLT:

<xsl:strip-space elements="a"/>

Mise à jour, cela fonctionne:

<a href="/somepage.html">
  <xsl:if test="current_page='this_page'">
   <xsl:attribute name='class'>active</xsl:attribute>
  </xsl:if>
  <xsl:text>My Page</xsl:text>
</a>

Autres conseils

Ne serait-simple xsl:strip-space en haut de la feuille de style vous suffit?

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output method="html" indent="yes"/>

  <xsl:strip-space elements="*"/>

  ...

</xsl:stylesheet>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top