Avatar billede hooh Nybegynder
16. november 2001 - 11:48 Der er 13 kommentarer og
2 løsninger

hvordan laver jeg en variabel

<xsl:template match=\"menu\">
    <td>
    <xsl:apply-templates select=\"menunavn\" />
   
      <table border=\"0\" class=\"menu\" id=\"h\" width=\"100%\">
          <xsl:apply-templates select=\"undermenu\" />
      </table>
    </td>
</xsl:template>

hvordan kan jeg få min id i tabellen til at blive dynamisk.

Der skal bare stå det samme i id som i \"undermenu\"



Avatar billede getalife Nybegynder
16. november 2001 - 12:12 #1
<table border=\"0\" class=\"menu\" width=\"100%\"><xsl:attribute name=\"id\"><xsl:apply-templates select=\"undermenu\" /></xsl:attribute>
          <xsl:apply-templates select=\"undermenu\" />
</table>
Avatar billede hooh Nybegynder
16. november 2001 - 12:31 #2
Det virker ikke.

Den udskriver bare undermenuerne 2 gange
Avatar billede getalife Nybegynder
16. november 2001 - 12:39 #3
hvad skriver \"undermenu\" ud?
Du skal forresten også have et mellemrum efter \"100%\"
Avatar billede Slettet bruger
16. november 2001 - 15:14 #4
Hvis du bare skal bruge et unikt id, skulle du overveje at bruge den indbyggede generate-id() funktion:

<table border=\"0\" class=\"menu\" id=\"{generate-id(.)}\" width=\"100%\">

Ovenstående genererer et unikt id ud fra elementets position, så du ved at kalde funktionen andetstedsfra, men ved at referere samme element, kan få det samme id ud.

getalife: Det med mellemrummet, det er altså way-off...
Avatar billede getalife Nybegynder
16. november 2001 - 15:16 #5
greystate.. eh.. nej..
width=\"100%\"(MELLEMRUM)id=\"\"
Avatar billede Slettet bruger
16. november 2001 - 15:34 #6
Øh - kan I se noget jeg ikke kan se? Hvor står der width=\"100%\"id=\"\" henne i ovenstående?

/CS
Avatar billede getalife Nybegynder
16. november 2001 - 16:44 #7
Det gør der i mit forslag til en løsning...
Avatar billede lrj Nybegynder
18. november 2001 - 02:50 #8
NO way?
Avatar billede getalife Nybegynder
18. november 2001 - 11:54 #9
suk.. jeg kan da også lige skære det ud i pap..
Hvis man skriver <table border=\"0\" class=\"menu\" width=\"100%\"><xsl:attribute name=\"id\">osv. osv.
Vil det vige et output der hedder:
<table border=\"0\" class=\"menu\" width=\"100%\"id=\"noget\">
Skal jeg også lave tegninger?
Avatar billede Slettet bruger
18. november 2001 - 13:47 #10
getalife: Nej, du skal ikke lave tegninger.

Hvis din XSLT processor ikke automatisk sætter mellemrum imellem attributterne, er det en bug i parseren/processoren, og mit gæt er at du måske bruger det namespace som Microsoft baserede Internet Explorer 5 (og 5.5)\'s XML parser på, nemlig http://www.w3.org/TR/WD-xsl. Ved brug af dette namespace har jeg tit set IE\'s XML-fremvisning klippe mellemrum ud, dog for det meste i namespace-deklarationer i stylesheets.

/CS
Avatar billede getalife Nybegynder
18. november 2001 - 14:32 #11
Dejligt, jeg er også elendig i Paint :o)

Okay, yup jeg bruger http://www.w3.org/TR/WD-xsl.
Uhm.. WD-xsl.. er det deres Working Draft?
Avatar billede hooh Nybegynder
19. november 2001 - 08:42 #12
getalife - Skriver du ikke lige et svar.

Så kan i begge få nogle point.

getalife 9 point
greystate 6 point


i får nogle point, selvom jeg ikke har fået det til at virke.
Avatar billede getalife Nybegynder
19. november 2001 - 10:23 #13
Skal vi ikke få det til at virke istedet for at give op?
Avatar billede Slettet bruger
19. november 2001 - 10:56 #14
Yep

Grunden til at mit forslag ikke virker, er helt sikkert at det er lavet til ovennævnte XSLT namespace...

Hvorfor ikke give \"menu\" elementet et id, og så lægge det i <table> vha.:

<table border=\"0\" class=\"menu\" width=\"100%\"><xsl:attribute name=\"id\"><xsl:value-of select=\"@id\"></xsl:attribute> osv..

(
Kan i XSLT skrives:
<table border=\"0\" class=\"menu\" width=\"100%\" id=\"{@id}\"> osv...

)

/CS
Avatar billede hooh Nybegynder
29. november 2001 - 10:29 #15
Såå virker det

    <xsl:template match=\"menu\">

<!--Nu virker xsl:variable -->
    <xsl:variable name=\"menuid\">
      <xsl:value-of select=\"menunavn\" />
    </xsl:variable>


        <td valign=\"top\">
      <b><a href=\"{$menuid}\"><xsl:value-of select=\"menunavn\" /></a></b><br />


        <table border=\"0\" class=\"menu\" id=\"{$menuid}\" width=\"100%\">
            <xsl:apply-templates select=\"undermenu\" />
        </table>
        </td>
    </xsl:template>
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