Avatar billede tuba Nybegynder
27. august 2004 - 09:56 Der er 3 kommentarer og
1 løsning

xslt og svg - problemer med at udtrække værdi fra attribut

Jeg har følgende kodeudsnit:
transform="translate(0,{(../@height-50)})"

det virker ikke.., men hvordan får jeg det til at virke
Avatar billede Slettet bruger
27. august 2004 - 10:04 #1
Vi skal bruge lidt mere info - f.eks. hvad den template der indeholder det match'er, og lidt af data'ene...

Hvis det f.eks. er XSLT's "translate()" funktion du benytter, er du galt på den, da den forventer 3 parametre, hvoraf den første er et node-set.

For mig ser det ud som om du prøver at generere en attribut ved navn "transform", og hvis det er tilfældet, ligger problemet sikkert i, at "@height" ikke ligger på den aktuelle node's parent. (Volapyk, I know :-)

/CS
Avatar billede tuba Nybegynder
27. august 2004 - 10:28 #2
ja det var sparsom info jeg gav der:

jeg er ved at lave et lille grafsystem som bruger svg til tegne skidtet

udsnit af xslt:
<xsl:template match="set">
        <xsl:if test="../../@type='barchart'">
        <svg:rect x="{$colwidth}px" y="0px" width="{$colwidth}px" height="50px"  transform="translate(0,{../@height-100})"
            xmlns:svg="http://www.w3.org/2000/svg"
            fill="blue" stroke="black" />
        </xsl:if>   
    </xsl:template>

xml:
<stats>
<chart type="barchart">
    <chartinfo>
        dette er en tekst til grafen
    </chartinfo>
    <grid height="400" width="700" colwidth="15" colspan="10">
        <set>
            <date>01-01-2004</date>
            <amount>5</amount>
        </set>   
        <set>         
            <date>02-01-2004</date>
            <amount>3</amount>
        </set>   
        <set>         
            <date>03-01-2004</date>
            <amount>4</amount>
        </set>   
        <set>         
            <date>04-01-2004</date>
            <amount>7</amount>
        </set>   
    </grid>
</chart>
</stats>
Avatar billede Slettet bruger
27. august 2004 - 10:37 #3
OK - ser jo umiddelbart fornuftigt ud.

Sker der eet af flg.:

1. Får du ikke <svg:rect /> elementet ud?
2. Kommer transform attributten ud som "translate(0,)" eller "translate(0,NaN)"?

1 -> templaten bliver ikke kaldt/brugt
2 -> Prøv at "number're" (ord?) height-attributten: translate(0, {number(../@height)-100})

/CS
Avatar billede tuba Nybegynder
27. august 2004 - 10:43 #4
{number(../@height)-100}).. klarede problemet, thanx
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