[XML] xsl value-of in img-tag werkt niet mee

Pagina: 1
Acties:

  • Dark Blue
  • Registratie: Februari 2001
  • Laatst online: 28-11 22:14

Dark Blue

Compositionista!

Alpenmeisje

Topicstarter
Hoi,
zoals ik in de titel al een beetje duidelijk maak probeer ik het volgende:
mijn xsl-code doorloopt een loopje en dat uit mijn xml-file telkens gegevens plus een foto van een persoon trekt. De rauwe gegevens lukt wel en ik kan ze ook formatten met html-tags.

Maar nu komt het moeilijke. Ik wil een plaatje neerzetten, dus een img tag, en de src="" van dat plaatje is het userid.

Dom en blond gezegd doe ik dan dit:
code:
1
<img src="$userid.jpg" alt="" />

Om dat voor elkaar te krijgen, doe ik dan dit:
code:
1
<img src="<xsl:value-of select="userid"/>.jpg" alt="" />


Natuurlijk blaft mijn browser me dan toe dat ik dit niet mag, omdat ik a) geen <> haken binnen andere <> haken mag gebruiken en bovendien zitten er ook nog eens dubbele quotes in: je raadt het al, dat ding gaat helemaal over de kop. Dit is dus kennelijk niet de manier om een variabele tussen html-tags in te krijgen. Hoe wel?

Ik heb een ander topic gevonden (dat helaas uit mijn ctr-v ontsnapt is) waar het van belang was om bepaalde css-waarden door te geven; het kampte met dit zelfde probleem. Daar kon het opgelost worden door de waarden gewoon in de css van de xsl-file te mieteren. In mijn geval kan dat niet, want ik geloof niet dat het mogelijk is om in css dus het volgende te doen

code:
1
img { source: }

op te geven. En die source moet ik juist hebben!

Iemand een manier hoe ik dit wél behoor op te schrijven?

VET! (update na 1 minuut)
Ik ben er zojuist achter gekomen dat als ik het volgende doe:
code:
1
<img src="{userid}.jpg" alt="" />

dat hij dan werkt :P .
Maar, is dit de goede manier, of is dit nasty en mag dit niet?

[ Voor 6% gewijzigd door Dark Blue op 24-03-2007 18:00 ]

heidiulrich.nl | adventura.nl : rugzakavonturen | pathwise.nl : prepping geeks to get jobs


Verwijderd

Dark Blue schreef op zaterdag 24 maart 2007 @ 17:55:
Maar, is dit de goede manier, of is dit nasty en mag dit niet?
Dit is precies de goede manier. Binnen attributen mag je {} gebruiken om een XPath expressie op te geven. Dat mag zelfs meerdere keren binnen 1 attribuut.

Deze manier kan ook:
XML:
1
2
3
4
5
<img alt="">
    <xsl:attribute name="src">
        <xsl:value-of select="userid"/>
    </xsl:attribute>
</img>

Verwijderd

dat valt toch onder Xquery dan (db's curly brackets dus)? volgens mij kunnen niet alle xslprocessors dat

Verwijderd

Verwijderd schreef op zaterdag 24 maart 2007 @ 22:56:
dat valt toch onder Xquery dan (db's curly brackets dus)? volgens mij kunnen niet alle xslprocessors dat
Afaik is het gewoon standaard XSLT 1.0:
http://www.w3.org/TR/xslt#dt-attribute-value-template

Verwijderd

verrek /me moet beter specs lezen voortaan :) dacht dat het alleen voorbehouden was aan XQuery