kan du ikke bare lave en named template som du kalder med call-template? Den arbejde på den aktuelle kontekst, så den burde du bare kunne kalde med de fornødne parametre...
Simpelt og umiddelbart elegant. Jeg underskrev også spørgsmålet med "noob", som jeg antager betyder "nybegynder".
Helt let går det dog ikke:
Det her er åbenbart XSLT 2.0 for det virkede ikke: <xsl:attribute name="colspan" type="xsl:integer" select="../../@cols"/>
mens dette er XSLT 1.0: <xsl:attribute name="colspan"> <xsl:value-of select="../../@cols"/> </xsl:attribute>
Hvis jeg fjerner attributten fra min xml-fil, så skriver den colspan="" som var hvad jeg gerne ville undgå.
Har så forsøgt at undersøge om attributten findes:
<!-- should be shown, it does --> <xsl:if test='"../../@cols" != ""'> <xsl:attribute name="colspan"> <xsl:value-of select="../../@cols"/> </xsl:attribute> </xsl:if>
<!-- should NOT be shown, well it does --> <xsl:if test='"../../@rows" != ""'> <xsl:attribute name="rowspan"> <xsl:value-of select="../../@rows"/> </xsl:attribute> </xsl:if>
Jeg validerer altså ikke korrekt på om den findes.
Havde håbet at der var en "skriv kun noget hvis der er noget"-funktion i XSLT. Synes det var ret åbenbart at lave funktionen sådan (men intet er logisk i XSLT!) og troede lige funktionen havde sneget sig ind i XSLT 2.0 hvor en xsl:attribute har attributten validation="strip"; hæftede mig ved ordet "strip", men det viste sig at være noget andet.
Hva' dælen! Du har jo fået points. Beklager, men så får du ikke flere ;-)
Synes godt om
Ny brugerNybegynder
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.