Question

Comment enveloppez-vous les résultats "quand" et "autrement" par une balise?

Dans mon exemple ci-dessous, j'ai essayé d'ajouter un div mais il finit par envelopper chaque résultat.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" version="1.0">
   <xsl:output method="xml" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" encoding="UTF-8" />
   <xsl:include href="vcardbook.xsl" />
   <xsl:template name="entriesLoopBook">
      <div id="team-posts">
         <xsl:for-each select="entries/entry ">
            <div>
               <xsl:choose>
                  <xsl:when test="$fid != 887">
                     <div class="physical">
                        <xsl:call-template name="vcardbook" />
                     </div>
                  </xsl:when>
                  <xsl:otherwise>
                     <div class="service">
                        <xsl:call-template name="vcardbook" />
                     </div>
                  </xsl:otherwise>
               </xsl:choose>
            </div>
         </xsl:for-each>
      </div>
      <div style="clear:both;" />
   </xsl:template>
</xsl:stylesheet>

Résultat du code ci-dessus:

<div>
   <div class="physical"><div class="567"></div></div>
   <div class="physical"><div class="457"></div></div>
   <div class="physical"><div class="342"></div></div>
   <div  class="service"><div class="887"></div></div>
   <div  class="service"><div class="887"></div></div>
</div>

À quoi je voudrais que ça ressemble:

<div>
   <div class="physical">
      <div class="567"></div>
      <div class="457"></div>
      <div class="342"></div>
   </div>
   <div  class="service">
     <div class="887"></div>
     <div class="887"></div>
   </div>
</div>

Merci de votre aide.

Était-ce utile?

La solution

Comme je gouverne, je ne recommanderais pas d'utiliser for-each, mais pour apporter le moins de modifications à votre code possible, essayez ceci:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" version="1.0">
   <xsl:output method="xml" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" encoding="UTF-8" />
   <xsl:include href="vcardbook.xsl" />
   <xsl:template name="entriesLoopBook">
      <div id="team-posts">
         <div>
            <div class="physical">
              <xsl:for-each select="entries/entry[<wherever you get $fid from> != 887">
                <xsl:call-template name="vcardbook"/>
              </xsl:for-each>
            </div>
            <div class="service">
              <xsl:for-each select="entries/entry[<wherever you get $fid from> = 887">
                <xsl:call-template name="vcardbook"/>
              </xsl:for-each>
            </div>
         </dv>
      </div>
      <div style="clear:both;" />
   </xsl:template>
</xsl:stylesheet>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top