XML/CSS težave

asko

Fizikalc
22. jul 2007
2.565
3
38
Imam XML datoteko z podatki, imam tudi CSS datoteko, kako naj se ti podatki izpišejo. V brskalniku se tudi lepo izpišejo, vendar brez kakršnega koli texta kaj določen podatek pomeni. Kako v CSS datoteki povedati, da je to naprimer ARTIKEL

V CSS imam tako:

artikel
{
color:red;
font-size: 14pt;
display:block;
}

V brskalniku se izpiše samo šifra: npr 0001, jaz bi pa želel da se izpiše ARTIKEL: 0001.

confused-1.gif
 

philips

Guru
Osebje foruma
Administrator
17. avg 2007
9.878
698
113
CSS ne boš mogel uporabiti direktno nad XML dokumentom.
Prvo si boš moral napisati XSLT stylesheet, da ga transformiraš v HTML. Tukaj boš tudi nastavi da ti pred šifro doda ARTIKEL.

Šele ko boš s transformacijo dobil HTML kodo, lahko nad njo apliciraš CSS stil.

Če ni XML prekompleksen ali tajen, ga lahko prilepiš pa ti bomo pomagali pri pisanju XSLT. Lahko pa se tudi sam naučiš: http://www.w3schools.com/xsl/
 

asko

Fizikalc
22. jul 2007
2.565
3
38
Hvala se že kar nekaj naučil...se pa tu ustavil. Imam v XMLju takole:

<datum>
<leto>2009</leto>
<mesec>12</mesec>
<dan>7</dan>
</datum>

Kako z XSL-je napisati, da bi mi izpisal 7.12.2009 ??
confused-1.gif


Hvala
 

doto

Fizikalc
25. jul 2007
3.175
0
36
<xsl:value-of select="datum/dan"/>.<xsl:value-of select="datum/mesec"/>.<xsl:value-of select="datum/leto"/>
 

asko

Fizikalc
22. jul 2007
2.565
3
38
Da še malo zamorim

<predavanja>
<termin>
<dan>sreda</dan>
<ura>
<od>10:00</od>
<do>20:00</do>
</ura>
</termin>
<termin>
<dan>petek</dan>
<ura>
<od>14:00</od>
<do>18:00</do>
</ura>
</termin>
</predavanja>

Če v XSL uporabim
<xsl:value-of select="predavanja"/>
mi lepo izpiše oba predavanja.

Če pa napišem, ker želim lepši izpis (npr: sreda od 10:00 do 20:00)
<xsl:value-of select="predavanja/termin/dan"/> od <xsl:value-of select="predavanja/termin/ura/od"/> do <xsl:value-of select="predavanja/termin/ura/do"/>

mi izpiše samo prvo predavanje.
 

philips

Guru
Osebje foruma
Administrator
17. avg 2007
9.878
698
113
Naredi si template za izpis podelementa <termin> ali pa po njih iteriraj s foreach.
Meni osebno je lepše delati s templati, zato bom dal tudi takšno rešitev.

Znotraj <predavanja> daš <xsl:apply-templates />

potem pa daš
Koda:
<xsl:template match="termin">
	<xsl:value-of select="dan"/> od <xsl:value-of select="ura/od"/> do <xsl:value-of select="ura/do"/>
</xsl:template>