Avatar billede debby Nybegynder
22. august 2000 - 11:51 Der er 7 kommentarer og
1 løsning

Posisjonering av elementer

Hvordan kan jeg få første halvparten av en rekke elementer til å komme i en kolonne, og den andre halvparten i en kolonne vedsiden.
Eksempel:
<test>
  <person id=\"1\">Ole</person>
  <person id=\"2\">Per</person>
  <person id=\"3\">Kari</person>
  <person id=\"4\">Nils</person>
  <person id=\"5\">Petter</person>
</test>

Resultatet skal bli:
<table>
<tr><td>Ole</td><td>Nils</td></tr>
<tr><td>Per</td><td>Petter</td></tr>
<tr><td>Kari</td><td></td></tr>
</table>
Avatar billede guldner Nybegynder
23. august 2000 - 17:15 #1
Jeg kender ikke XSLT/XPath så godt, formentlig er der et smukkere svar på dit spørgsmål, men her er et foreslag: Hvis det ellers ikke generer dit html-dokument, kan du lave to tabeller inden i en tredie, således: (jeg har ikke afprøvet det)
<xsl:template match = \"/\" >
<table><tr><td>
<table>
<xsl:for-each select = \"//person\" >
<xsl:if test=\"position() &lt; (count(//person)/2)\">
<tr><td>
<xsl:value-of select = \".\" />
</td></tr>             
</xsl:if>
</xsl:for-each>
</table></td><td>
<table border=\"1\">
<xsl:for-each select = \"//person\" >
<xsl:if test=\"position() &gt; (count(//person)/2)\" >
<tr><td>
<xsl:value-of select = \".\" />
</td></tr>             
</xsl:if>
</xsl:for-each>
</table>
</td></tr></table>
</xsl:template>
Avatar billede guldner Nybegynder
23. august 2000 - 17:20 #2
Sorry, dividere-operatoren skal selvfølgelig ikke være \'/\' men div!
Avatar billede debby Nybegynder
24. august 2000 - 08:52 #3
Jeg har tidligere forsøkt det som guldner foreslår, men jeg har mer enn én xsl:template på person, så jeg har ikke muligheten til å bruke xsl:for-each.
Avatar billede guldner Nybegynder
24. august 2000 - 12:13 #4
Hvordan skelner du mellem de to tempaltes? XSLT-processoren skal vel vælge en af templates\'ene, hvis der er to der matcher en given node? Eller hvad?
Avatar billede debby Nybegynder
24. august 2000 - 12:33 #5
Jeg har en template for hver type:
<test>
  <person id=\"1\" type=\"snill\">Ole</person>
  <person id=\"2\" type=\"stygg\">Per</person>
  <person id=\"3\" type=\"gammel\">Kari</person>
  <person id=\"4\" type=\"snill\">Nils</person>
  <person id=\"5\" type=\"stygg\">Petter</person>
</test>

Avatar billede guldner Nybegynder
25. august 2000 - 10:33 #6
Kunne du nøjes med én <xsl:template> på person der tilgengæld indeholdt en <xsl:choose> til at opdele på type? Eventuelt yderligere styret af en <xsl:variable>?
Eller måske lave en <xsl:template> der kaldes ved brug af navnet (<xsl:call-template name=\"bob\"/>) og ikke \"pattern\"?
Avatar billede debby Nybegynder
25. august 2000 - 11:07 #7
Godt forslag - dette virker bra. Rotete xsl - men det virker jo!

Takk, guldner!

Svar og få dine poeng!
Avatar billede guldner Nybegynder
25. august 2000 - 11:21 #8
Glæder mig at høre.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Søstrene Grene skifter Microsoft ud med SAP og rykker for første gang i clouden i stor ERP-transformation: Der er brug for en helt ny tilgang