Autor Zpráva
Radek9
Profil
Ahoj. Mám XML dokument, ve kterém mám odkaz na XSL dokument, který mi to převádní na HTML. Ještě jsem si tam pomocí CSS dodělal aby tagy <b>, <i> a <u> měly normální vlastnosti HTML, ale XSL prostě CSSku nepovolilo fungovat. Když vymažu kousek s odkazem na XSL, tak je text normálně HTML (tedy <b> je tučný atd.), ale když tam mám oboje tak je tam zobrazeno jen XSL. Zkoušel jsem i do XSL vložit tag <link> s příslušným CSS, ale ani to nefungovalo. Nevíte někdo jak to udělat?
tiso
Profil
Radek9 - zožeň si vešticu.
Radek9
Profil
tiso
A ty si sežeň psychologa. Byla to úplně normální otázka.
tiso
Profil
Radek9 - otázka možno bola normálna, ale bez konkrétneho XML, XSL a možno aj CSS ti fakt poradí iba veštica. Preto som to napísal. Takže?
Radek9
Profil
XML:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="style.php"?> 
<stranka>
<titulek>lolec :D</titulek>
<data>
	<food>
		<name>Belgian Waffles</name>
		<price>$5.95</price>
		<description>two of our <b>famous</b> Belgian Waffles with plenty of real maple syrup</description>

		<calories>650</calories>

	</food>
	<food>
		<name>Strawberry Belgian Waffles</name>
		<price>$7.95</price>
		<description>light Belgian waffles covered with strawberries and whipped cream</description>

		<calories>900</calories>
	</food>

	<food>
		<name>Berry-Berry Belgian Waffles</name>
		<price>$8.95</price>
		<description>light Belgian waffles covered with an assortment of fresh berries and whipped cream</description>

		<calories>900</calories>
	</food>
	<food>

		<name>French Toast</name>
		<price>$4.50</price>
		<description>thick slices made from our homemade sourdough bread</description>

		<calories>600</calories>
	</food>
	<food>
		<name>Homestyle Breakfast</name>

		<price>$6.95</price>
		<description>two eggs, bacon or sausage, toast, and our ever-popular hash browns</description>

		<calories>950</calories>
	</food>
</data>
</stranka>

XSL:
<?xml version="1.0" encoding="utf-8"?>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <head>
    <xsl:for-each select="stranka">
      <title><xsl:value-of select="titulek"/></title>
    </xsl:for-each>
    <link rel="stylesheet" href="xml.css" type="text/css"/>
  </head>
  <body style="font-family:Arial;font-size:12pt;background-color:#ffffff">
    <xsl:for-each select="stranka/data/food">

          <div style="background-color:teal;color:white;padding:4px">
        <span style="font-weight:bold"><xsl:value-of select="name"/></span>
        - <xsl:value-of select="price"/>
      </div>
      <div style="padding-left:20px;padding-bottom:1em;font-size:10pt;background:#eeeeee">
        <xsl:value-of select="description"/>
        <span style="font-style:italic">
          <xsl:value-of select="calories"/> (calories per serving)
        </span>

      </div>
    </xsl:for-each>
  </body>
</html>

CSS:
b {
  font-weight: bold;
}
tiso
Profil
Radek9 - ono to funguje, len v tom výsledom xhtml žiadny element <b> nie je, takže sa ten štýl nemá na čo aplikovať...

A miesto:
<xsl:for-each select="stranka">
      <title><xsl:value-of select="titulek"/></title>
</xsl:for-each>

stačí:
<title><xsl:value-of select="stranka/titulek"/></title>
Radek9
Profil
tiso
A jak ho tam mám dostat?
tiso
Profil
Radek9 - zmeníš šablónu, napríklad:
...
<span style="font-style:italic">
    <b><xsl:value-of select="calories"/></b> (calories per serving)
</span>
...

a v css si zmeň:
b {
  /*font-weight: bold; toto nema zmysel nastavovat*/
  color: #F00;
}
Radek9
Profil
Já vím, ale to bych měl celý kus textu tučný. Já totiž ty tagy <b> chci mít uvnitř jiného tagu, který tučný mít nechci.
tiso
Profil
Já totiž ty tagy <b> chci mít uvnitř jiného tagu, který tučný mít nechci.
To znamená konkrétne čo? Daj príklad...

Aha, už chápem,ty chceš aby ti do výsledku zobrazilo <b> z pôvodného xml:
<description>two of our <b>famous</b> Belgian Waffles with plenty of real maple syrup</description>

Tak takto:
<xsl:copy-of select="description"/>
Radek9
Profil
Díky, funguje.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: