22. august 2000 - 11:51Der 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>
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() < (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() > (count(//person)/2)\" > <tr><td> <xsl:value-of select = \".\" /> </td></tr> </xsl:if> </xsl:for-each> </table> </td></tr></table> </xsl:template>
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.
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\"?
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.