Toon posts:

XSL en HTML

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer een XSL te maken die van een gegeven XML file een juiste HTML output maakt

Dit is mijn XML file
code:
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="UTF-8"?>
<Button>
  <Caption>Hello World</Caption>
  <Heigth>38</Heigth>
  <Top>10</Top>
  <Width>77</Width>
  <Left>10</Left>
</Button>


En dit is mijn XSL file..

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xalan="http://xml.apache.org/xslt">
    <xsl:template match="Button">
            <INPUT  id="Save" 
                    style="Z-INDEX: 163;
                           POSITION: absolute; 
                           LEFT:  <xsl:value-of select="Left"/>px;
                           WIDTH: <xsl:value-of select="Width"/>px; 
                           TOP:   <xsl:value-of select="Top"/>px; 
                           HEIGHT:<xsl:value-of select="Heigth"/>px" 
                Type="button" value="<xsl:value-of select="Caption"/>" name="Button1" 
                                size="38">
                        </INPUT>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>


Nou zit de fout in het feit dat het style stukje niet wil dat er brackets in staan.
Is er een manier om dit op te lossen of om hier omheen te programmeren.

[ Voor 92% gewijzigd door McVirusS op 11-06-2003 11:32 ]


  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 21-08 06:33

Tux

Het is handiger als je [norml]
code:
1
...
[/] om je code heen zet. Dat is beter te lezen :)

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Verwijderd

De code ziet er inderdaad een beetje wazig uit zo. Volgens staat op w3school wel hoe dit kan

Verwijderd

Topicstarter
Ik heb daar zitten kijken maar kon alleen <xsl:value-of select="Heigth"/> vinden. Alles wat hij daar als voorbeeld aanhaald zet hij in een tabel neer !

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
code:
1
2
<xsl:template match="Button">
   <xsl:for-each select="Button">

Rara wat is de fout ....

[ Voor 21% gewijzigd door mbravenboer op 11-06-2003 11:24 ]

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

HTML zit aan de andere kant van de schutting (kan hier helaas niet je post editen om die code-tags toe te voegen). PW -> WG dus ;)

Professionele website nodig?


Verwijderd

Topicstarter
Klopt ik heb erin zitten vervelen omdat hij het niet deed ik zal het even aanpassen. Maar dit is niet de fout die ik bedoel !

Verwijderd

code:
1
HEIGHT:<xsl:value-of select="Heigth"/>px"


typo: heighthtgh :)
verder weinig verstand van XSL, maar kan dat het niet zijn?

[ Voor 66% gewijzigd door Verwijderd op 11-06-2003 11:38 ]


Verwijderd

Topicstarter
Nee want dezelfde fout komt terug in het XML bestand ( 2X stom geweest)

Verwijderd

dus..nu werkt ie wel?

Verwijderd

Topicstarter
Nee, want omdat ik dezelfde fout 2x heb gemaakt is ie weer goed !

  • mrEarthling
  • Registratie: Juni 2001
  • Niet online
code:
1
<xsl:value-of select="Left"/>

moest dan niet
code:
1
<xsl:value-of select="@Left"/>

zijn. Of toch
code:
1
<xsl:value-of select="{Left}"/>

weet het niet zeker hoor. Staat met iets van bij. Maar ik zou zeggen probeer het even.

Gaat je geen reet aan wat voor een Pjoeter ik heb ;)


Verwijderd

Topicstarter
Het probleem is dat Websphere moeilijk doet en met de melding

The value of attribute "style" must not contain the '<' character.

komt. Het Probleem zit hem dus niet echt in het correct aanroepen van de XML variabelen. Maar meer in de syntax van de te genereren HTML

  • rig0r
  • Registratie: Juli 2001
  • Laatst online: 11-03-2025
Je kan die <xsl:value-of select..> tags niet binnen quotes (als waarde binnen een argument) gebruiken.

In plaats daarvan doe je :

code:
1
2
3
4
5
6
style="Z-INDEX: 163;
POSITION: absolute;
LEFT:  {Left}px;
WIDTH: {Width}px;
TOP: {Top}px;
HEIGHT: {Heigth}px"

[ Voor 39% gewijzigd door rig0r op 11-06-2003 12:49 . Reden: opgeleukt ;) ]


Verwijderd

Topicstarter
Dat is 'm dank je wel !

Verwijderd

code:
1
2
3
4
<xsl:attribute name="style">
top:<xsl:value-of select="top"/>px;
left:<xsl:value-of select="left"/>px;
</xsl:attribute>

  • rig0r
  • Registratie: Juli 2001
  • Laatst online: 11-03-2025
Mja, da's nog beter idd :)

Trouwens, is er een manier om een attribute alleen te laten includen als hij niet leeg is ?
Om te voorkomen dat xsl bijvoorbeeld size="" meegeeft ?

Verwijderd

code:
1
2
3
<xsl:if check="top > ''">
 <xsl:attribute></xsl:attribute>
</xsl:if>
Pagina: 1