home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 July & August / PCWorld_2004-07-08_cd.bin / novinky / interval / clanek10.htm < prev    next >
Encoding:
Extensible Markup Language  |  2004-06-08  |  19.1 KB  |  216 lines

  1. <?xml version='1.0' encoding='windows-1250'?>
  2. <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
  3. <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='cs' lang='cs'>
  4. <head>
  5. <meta http-equiv='Content-Type' content='text/html; charset=windows-1250' />
  6. <meta http-equiv='Content-language' content='cs' />
  7. <meta http-equiv='Cache-control' content='no-cache' />
  8. <meta http-equiv='Pragma' content='no-cache' />
  9. <meta http-equiv='Expires' content='0' />
  10. <meta name='robots' content='index, follow' />
  11. <meta name='googlebot' content='index, follow, noarchive' />
  12. <meta name='description' content='Interval.cz - Internetov² magazφn o webdesignu, v²voji webov²ch aplikacφ a e-komerci. VÜe podstatnΘ o technologiφch XHTML, HTML, CSS, DHTML, JavaScript, XML, .NET, ASP, PHP, Java, J2ME, SQL, WAP...' />
  13. <meta name='keywords' content='Interval' />
  14. <meta http-equiv='imagetoolbar' content='no' />
  15. <meta http-equiv='MSThemeCompatible' content='no' />
  16. <meta name='MSSmartTagsPreventParsing' content='true' />
  17. <meta name='ICBM' content='49.1915, 16.626' />
  18. <meta name='DC.Title' content='Interval.cz' />
  19. <meta name='DC.Identifier' content='http://interval.cz' />
  20. <meta name='DC.Language' content='cs' />
  21. <link rel='alternate' type='text/xml' title='RSS' href='http://interval.cz/__rss/rss.asp' />
  22. <link rel='shortcut icon' href='favicon.ico' />
  23. <link rel='home' href='http://interval.cz' />
  24. <link rel='search' href='http://interval.cz/search_ex.asp' />
  25. <link rel='stylesheet' type='text/css' media='all' href='__services/styles/html4.css' />
  26. <link rel='stylesheet' type='text/css' media='all' href='__services/styles/basic_all.css' />
  27. <link rel='stylesheet' type='text/css' media='all' href='__services/styles/homepage_all.css' />
  28. <link rel='stylesheet' type='text/css' media='all' href='__services/styles/articles_all.css' />
  29. <link rel='stylesheet' type='text/css' media='print' href='__services/styles/articles_print.css' />
  30. <title>Interval.cz - denn∞ o tvorb∞ webu a e-komerci</title>
  31. </head>
  32. <body class='interval interval-articles'>
  33. <div id='page-header'><div id='interval-logo'><h1 title='Interval.cz - denn∞ o tvorb∞ webu a e-komerci (logo & index link)'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz'>Interval.cz<span></span></a></h1></div><div id='advertising-page-header'></div><div class='page-maker'> </div></div>
  34. <div id='page-topmenu'><h2 class='textversion'>Navigace</h2><div id='page-mainmenu'><h3 class='textversion'>Hlavnφ menu</h3><ul><li class='first selected'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz'>Titulnφ strana</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=14'>Webdesign</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=15'>V²voj aplikacφ</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=18'>E-komerce</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=17'>Nßstroje</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=16'>Magazφn</a></li><li class='right selected'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.inshop.cz'>Knihkupectvφ</a></li><li class='right'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interforum.interval.cz'>Interforum</a></li></ul></div><div id='page-mainmenu-maker'> </div></div>
  35. <div id='page-body'><div id='page-left'><div id='article'>
  36.  
  37.  
  38.  
  39. <h2>Kompletnφ pr∙vodce XSLT - vklßdßnφ dat</h2>
  40. <p id='prepend'>Do v²stupu XSL transformace obvykle pot°ebujeme vlo₧it na r∙znß mφsta vybranß data ze vstupnφho dokumentu. V tomto Φlßnku se seznßmφme s n∞kolika XSLT instrukcemi, kterΘ slou₧φ prßv∞ ke vklßdßnφ dat, a nauΦφme se je efektivn∞ vyu₧φvat.</p>
  41.  
  42.  
  43.     <h3>Pou₧itφ v²chozφch Üablon</h3>
  44. <p>NejjednoduÜÜφ mo₧nostφ, jak p°enΘst data ze vstupu na v²stup, je zavolßnφ <samp><apply-templates/></samp>, p°iΦem₧ m∙₧eme p°idat nepovinn² parametr <samp>select</samp>, kter²m vybereme ve vstupnφm dokumentu uzel, odkud se bude Φerpat. Pokud pro XML elementy na vstupu nejsou definovßny vhodnΘ Üablony, pou₧ijφ se Üablony v²chozφ, kterΘ se postarajφ o p°ekopφrovßnφ <strong>textovΘho obsahu</strong> vybranΘho uzlu. To m∙₧e b²t Φasto v²hodnΘ, proto₧e autor vstupnφho dokumentu m∙₧e text obohatit o libovolnΘ mno₧stvφ sΘmantick²ch znaΦek uspo°ßdan²ch do libovolnΘ struktury - vy si ale p°i transformaci zpracujete vlastnφmi Üablonami pouze vßmi vybranΘ znaΦky a zbytek se zahodφ, p°iΦem₧ se ale v₧dy vyu₧ije textov² obsah.</p>
  45. <p>N∞kdy pot°ebujeme takto zpracovat ·pln∞ cel² vstupnφ dokument, v tom p°φpad∞ nemusφme vytvß°et Üablonu pro ko°enov² element (<samp><xsl:template match="/"></samp> ... <samp></xsl:template></samp>) a pak se i pro tento element pou₧ijφ v²chozφ Üablony. Vφce podrobnostφ o tomto zp∙sobu zpracovßnφ vstupnφho dokumentu jste se mohli doΦφst v <a href='http://interval.cz/clanek.asp?article=3338' title='B°φza, Petr: Kompletnφ pr∙vodce XSLT - Üablony'>p°edchozφm Φlßnku</a>, kter² pojednßvß o vytvß°enφ Üablon a jejich zpracovßnφ XSLT procesorem.</p>
  46.  
  47. <h3>Hodnota v²razu (xsl:value-of)</h3>
  48. <p>Nechceme-li zpracovßvat urΦit² fragment ₧ßdn²mi Üablonami, lze pou₧φt instrukci <samp>xsl:value-of</samp>, kterß slou₧φ pro vklßdßnφ textov²ch dat. Jejφ parametr <samp>select</samp> obsahuje XPath v²raz, kter² je procesorem vyhodnocen, p°eveden na °et∞zec (je-li t°eba) XPath funkcφ <a href='http://www.w3.org/TR/xpath#function-string'>string()</a> a vlo₧en na v²stup. XML uzly se p°evßdφ na °et∞zec tak, ₧e se vytßhne op∞t pouze jejich textov² obsah, efekt m∙₧e b²t tedy podobn² tomu v p°edchozφm p°φpad∞.</p>
  49. <p>P°i vklßdßnφ text∙ XSLT procesor vÜechny rezervovanΘ znaky zak≤duje do p°φsluÜn²ch XML/HTML entit, tedy nap°φklad znak <samp>&</samp> (kter² je ve vstupnφm dokumentu zapsßn jako <samp>&amp;</samp>) je nahrazen op∞t zßpisem <samp>&amp;</samp>. Toto chovßnφ nemusφ b²t v₧dy ₧ßdoucφ, a proto jej lze vypnout nastavenφm parametru <samp>disable-output-escaping</samp> na hodnootu <samp>"yes"</samp>. Pak jsou vÜechny znaky zkopφrovßny p°esn∞ tak, jak jsou rozk≤dovßny a vyta₧eny ze vstupu.</p>
  50.  
  51. <h3>Kopφrovßnφ uzl∙ (xsl:copy, xsl:copy-of)</h3>
  52. <p>Samoz°ejm∞ ne v₧dy nßs zajφmß pouze textov² obsah, m∙₧eme takΘ chtφt kopφrovat XML uzly ze vstupu. Jsou dv∞ mo₧nosti, jak to provΘst, kterΘ se liÜφ v tom, zda chceme kopφrovat pouze jeden uzel nebo hned celou strukturu.</p>
  53.  
  54. <h4>Kopφrovßnφ jednoho uzlu (xsl:copy)</h4>
  55. <p>Instrukce <samp>xsl:copy</samp> zkopφruje na v²stup pouze aktußlnφ uzel. Jde-li o XML element, nekopφrujφ se automaticky jeho atributy! Pokud mß element ve v²sledku obsahovat n∞jakΘ dalÜφ uzly, musφ b²t p°φsluÜnΘ elementy (nebo instrukce, kterΘ je vytvo°φ) vlo₧eny dovnit° do tΘto instrukce, tedy mezi znaΦky <samp><xsl:copy></samp> a <samp></xsl:copy></samp>.</p>
  56.  
  57. <h4>Kopφrovßnφ vÜech uzl∙ (xsl:copy-of)</h4>
  58. <p>Instrukce <samp>xsl:copy-of</samp> mß povinn² parametr <samp>select</samp> (jak jinak), kter² je vyhodnocen a jeho₧ v²sledek je zkopφrovßn do v²stupu jako cel² XML fragment.</p>
  59.  
  60. <h3>èablony hodnot atribut∙</h3>
  61. <p>Atributy k element∙m v Üablonßch m∙₧eme samoz°ejm∞ zapisovat naprosto b∞₧n²m zp∙sobem p°φmo do t∞chto element∙. Je tady vÜak mo₧nost zßpisu XPath v²raz∙ do hodnot t∞chto atribut∙, a to pomocφ slo₧en²ch zßvorek (<samp>{</samp> a <samp>}</samp>). VÜe osv∞tlφ naprosto jednoduch² p°φklad:</p>
  62.  
  63. <div class='sample'>
  64. <img src="{/config/path}/obrazek.gif" />
  65. </div>
  66.  
  67. <p>Text ve slo₧en²ch zßvorkßch (<samp>/config/path</samp>) se vyhodnotφ, tedy nalezne se p°φsluÜn² uzel ze vstupu, vytßhne se jeho °et∞zcovß hodnota a doplnφ se zbytkem hodnoty atributu (<samp>/obrazek.gif</samp>). Lze tak velice snadno pou₧φvat data ze vstupnφho dokumentu jako atributy libovoln²ch element∙.</p>
  68.  
  69. <h3>Vytvß°enφ element∙ (xsl:element)</h3>
  70. <p>Do v²stupu lze vklßdat elementy jejich jednoduch²m vlo₧enφm na sprßvnΘ mφsto do Üablony v transformaΦnφm stylu. Co kdy₧ ale nßzev elementu p°edem neznßme? I na tuto situaci je pamatovßno. Existuje znaΦka <samp>xsl:element</samp>, jejφ₧ atribut <samp>name</samp> je °et∞zec, urΦujφcφ v²sledn² nßzev elementu. Tento parametr lze zapsat stejn∞ jako Üablony atribut∙, tedy lze zapisovat XPath v²razy ve slo₧en²ch zßvorkßch. M∙₧eme takΘ definovat jmenn² prostor pomocφ parametru <samp>namespace</samp>. Pokud mß mφt element atributy nebo dalÜφ pod°φzenΘ elementy, jsou tyto uzly vlo₧eny do t∞la instrukce, tedy mezi otevφracφ a uzavφracφ tag. Zde je mo₧nΘ volat jinΘ Üablony a pou₧φvat jakΘkoli jinΘ XSLT instrukce.</p>
  71.  
  72. <div class='sample'>
  73. <xsl:element name="{$BlockElement}">
  74. <br />  <xsl:apply-templates />
  75. <br /></xsl:element">
  76. </div>
  77.  
  78. <h3>Vytvß°enφ atribut∙ (xsl:attribute)</h3>
  79. <p>Tato instrukce vytvo°φ k nad°φzenΘmu elementu atribut. Nßzev a jmenn² prostor jsou dßny op∞t v parametrech <samp>name</samp> a <samp>namespace</samp>, op∞t lze vyu₧φt XPath v²razy ve slo₧en²ch zßvorkßch. Takto lze p°idßvat atributy nejen ke znaΦkßm vlo₧en²m pomocφ <samp>xsl:element</samp>, ale takΘ k element∙m zapsan²m p°φmo. Tedy nap°φklad lze zapsat:</p>
  80.  
  81. <div class='sample'>
  82. <img src="img/obrazek.gif">
  83. <br />  <xsl:attribute name="alt">popis obrßzku</xsl:attribute>
  84. <br /></img>
  85. </div>
  86.  
  87. <p>Jak jste si jist∞ vÜimli, hodnota atributu se vklßdß do t∞la instrukce. Pokud chcete tuto hodnotu vyjßd°it n∞jak²m XPath v²razem, nenφ problΘm vyu₧φt instrukci <samp>xsl:value-of</samp>. Rovn∞₧ je mo₧nΘ uvnit° tΘto instrukce volat jinΘ Üablony s tφm, ₧e v²sledek jejich zpracovßnφ bude p°eveden na °et∞zec a vlo₧en do hodnoty vytvß°enΘho atributu. Pokud k jednomu elementu vytvo°φte n∞kolik stejnojmenn²ch atribut∙, procesor aplikuje pouze prvnφ a zbytek bude ignorovßn. VÜechny atributy musφ b²t definovßny d°φve ne₧ prvnφ pod°φzen² element, pokud bude n∞jak² atribut definovßn pozd∞ji, m∞l by jej XSLT procesor ignorovat.</p>
  88.  
  89. <h3>Skupinu atribut∙ (xsl:attribute-set)</h3>
  90. <p>V XSLT lze definovat skupinu atribut∙ pomocφ znaΦky <samp>xsl:attribute-set</samp>, kterß se zapisuje do nejvyÜÜφ ·rovn∞ XSLT dokumentu, p°φmo do znaΦky <samp>xsl:stylesheet</samp>, je pojmenovanß n∞jak²m unikßtnφm nßzvem a obsahuje mno₧inu n∞kolika atribut∙. VÜechny tyto atributy pak budou snadno pou₧itelnΘ pod jednφm spoleΦn²m nßzvem. Mal² p°φklad vΦetn∞ ukßzky vyu₧itφ:</p>
  91.  
  92. <div class='sample'>
  93. <xsl:attribute-set name="table-nospacing">
  94. <br />  <xsl:attribute name="cellspacing">0</xsl:attribute>
  95. <br />  <xsl:attribute name="cellpadding">0</xsl:attribute>
  96. <br /></xsl:attribute-set>
  97. <br />
  98. <br /><table xsl:use-attribute-sets="table-nospacing">
  99. <br />  ...
  100. <br /></table>
  101. <br />
  102. <br /><xsl:element name="table"
  103. <br />  use-attribute-sets="table-nospacing">
  104. <br />  ...
  105. <br /></xsl:element>
  106. </div>
  107.  
  108. <p>Takto vytvo°en² a pojmenovan² soubor atribut∙ lze snadno pou₧φt kdekoli je to pot°eba pomocφ <samp>xsl:use-attribute-sets</samp> (p°i pou₧itφ v XSL instrukci samoz°ejm∞ prefix <samp>xsl:</samp> nemusφme uvßd∞t).</p>
  109.  
  110. <h3>Vytvß°enφ textov²ch uzl∙ (xsl:text)</h3>
  111. <p>TextovΘ uzly lze krom∞ p°φmΘho zßpisu a ostatnφmi instrukcemi vklßdat takΘ specißlnφ instrukcφ <samp>xsl:text</samp>, jejφ₧ atribut <samp>disable-output-escaping</samp> nastaven² na <samp>"yes"</samp> zakß₧e k≤dovßnφ znak∙ entitami podobn∞, jako u instrukce <samp>xsl:value-of</samp>. Obsah tΘto instrukce nenφ fragment Üablony, ale musφ b²t zapsßn p°φmo - nesmφ obsahovat ₧ßdnΘ dalÜφ XSLT instrukce.</p>
  112.  
  113. <h3>Vytvß°enφ procesnφch instrukcφ (xsl:processing-instruction)</h3>
  114. <p>XSLT instrukce <samp>xsl:processing-instruction</samp> vlo₧φ do dokumentu procesnφ instrukci, jejφ₧ nßzev se skr²vß v parametru <samp>name</samp>. Do t∞la instrukce p°φmo napφÜeme parametry procesnφ instrukce, jak ukazuje nßsledujφcφ p°φklad:</p>
  115.  
  116. <div class='sample'>
  117. <xsl:processing-instruction name="xml-stylesheet">
  118. <br />  href="book.css" type="text/css"
  119. <br /></xsl:processing-instruction>
  120. </div>
  121.  
  122. <p>A v²sledek:</p>
  123.  
  124. <div class='sample'>
  125. <?xml-stylesheet href="book.css" type="text/css"?>
  126. </div>
  127.  
  128. <h3>Vytvß°enφ komentß°∙ (xsl:comment)</h3>
  129. <p>Komentß°e lze do v²sledk∙ vklßdat pomocφ instrukce <samp>xsl:comment</samp>. T∞lem instrukce m∙₧e b²t op∞t cokoli, v²sledek zpracovßnφ je pak vlo₧en jako obsah komentß°e.</p>
  130.  
  131. <h3>Shrnutφ</h3>
  132. <p>Na zßv∞r si uvedeme p°ehlednou tabulku, kterß shrnuje vÜechny prvky jazyka XSLT, kter²mi lze vytvß°et v²sledn² dokument (result tree). èablona jako obsah prvku znamenß, ₧e obsahem m∙₧e b²t libovoln² fragment XSLT Üablony a takΘ je tak vyhodnocen.</p>
  133.  
  134. <div class='table'>
  135. <table cellspacing='0'>
  136. <tr><th>Zßpis</th><th>Atributy</th><th>Obsah</th><th>V²sledn² uzel</th></tr>
  137. <tr><td>p°φm² zßpis element∙ a atribut∙</td><td>-</td><td>Üablona</td><td>elementy, atributy</td></tr>
  138. <tr><td><samp>{<em>v²raz</em>}</samp></td><td>-</td><td>XPath v²raz</td><td>fragment hodnoty atribut∙</td></tr>
  139. <tr><td><samp><xsl:value-of></samp></td><td><samp>select</samp> (XPath) <br /><samp>disable-output-escaping</samp> (yes/no)</td><td>-</td><td>textov² uzel</td></tr>
  140. <tr><td><samp><xsl:copy></samp></td><td><samp>use-attribute-sets</samp> (qname)</td><td>Üablona</td><td>kopie aktußlnφho uzlu</td></tr>
  141. <tr><td><samp><xsl:copy-of></samp></td><td><samp>select</samp> (XPath)</td><td>-</td><td>kopie v²sledku v²razu vΦetn∞ pod°φzen²ch prvk∙</td></tr>
  142. <tr><td><samp><xsl:element></samp></td><td><samp>name</samp> (qname) <br /><samp>namespace</samp> (uri) <br /><samp>use-attribute-sets</samp> (qnames)</td><td>Üablona</td><td>element</td></tr>
  143. <tr><td><samp><xsl:attribute></samp></td><td><samp>name</samp> (qname) <br /><samp>namespace</samp> (uri)</td><td>Üablona</td><td>atribut</td></tr>
  144. <tr><td><samp><xsl:text></samp></td><td><samp>disable-output-escaping</samp> (yes/no)</td><td>°et∞zec</td><td>textov² uzel</td></tr>
  145. <tr><td><samp><xsl:processing-instruction></samp></td><td><samp>name</samp> (ncname)</td><td>Üablona</td><td>procesnφ instrukce</td></tr>
  146. <tr><td><samp><xsl:comment></samp></td><td>-</td><td>Üablona</td><td>komentß°</td></tr>
  147. </table>
  148. </div>
  149.  
  150. <h3>Odkazy, zdroje</h3>
  151.  
  152. <div class='list'>
  153. <ul>
  154. <li><a href='http://www.w3.org/Style/XSL/'>The Extensible Stylesheet Language Family (XSL)</a> (W3C)</li>
  155. <li><a href='http://www.kosek.cz/xml/xslt/'>XSLT v p°φkladech</a> - Ji°φ Kosek</li>
  156. </ul>
  157. </div>
  158.  
  159.  
  160.  
  161. <div id='article-author'>
  162. <a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/autor.asp?author=217'>B°φza, Petr</a> (27. 5. 2004)
  163.  
  164. </div>
  165.  
  166.  
  167.  
  168. </div></div>
  169. <div id='page-right'><h2 class='textversion'>Prav² sloupek</h2>
  170. <div id='search'><h3 class='textversion'>Vyhledßvßnφ</h3><form method='get' action='http://interval.cz/search.asp'><div><input type='text' name='hledej' class='text' /><input type='submit' class='submit' value='Najdi!' /></div></form><div><a href='http://interval.cz/search_ex.asp'>RozÜφ°enΘ vyhledßvßnφ</a></div></div>
  171.  
  172.  
  173.  
  174. <div class='page-right-box book'>
  175.     <h3>Kni₧nφ novinka</h3>
  176.     <div class='page-right-box-in'>
  177.         <div class='book-top'>
  178.             <h4><a href='http://interval.cz/__redirect/redirect.asp?what=interval_booknews&url=http://interval.inshop.cz/inshop/scripts/detail.asp?ItemID=266'>Eric Meyer o CSS - Ovlßdn∞te kaskßdovΘ styly!</a></h4>
  179.         </div>
  180.     </div>
  181.     <div class='image'>
  182.         <img src='podklady/knihy/image.jpg' alt='obßlka' title='obßlka' /></a>
  183.     </div>
  184.     <div class='book-bottom'>Cena: <span class='book-price-old'>390 KΦ</span> <span class='book-price-new'>351 KΦ</span></div>
  185. </div>
  186.  
  187.  
  188.  
  189. <div class='page-right-box reading'>
  190.     <h3>NejΦten∞jÜφ</h3>
  191.     <div class='page-right-box-in'>
  192.         <ul>
  193. <li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3380'>VyΦiÜt∞nφ tabulky z MS Wordu v MSIE JavaScriptem</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3383'>Kompletnφ pr∙vodce XSLT - °φzenφ toku transformace</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3385'>èt∞pßnka Sunkovß: Jeden za vÜechny, vÜichni za jednoho</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3379'>SMARTY - cache, WAP a bezpeΦnost</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3381'>╚eskß on-line reklama - internet a chu¥ na bagety</a></li>
  194.         </ul>
  195.     </div>
  196. </div>
  197.  
  198.  
  199.  
  200. <div class='page-right-box cauldron'>
  201.     <h3>Diskuznφ kotel</h3>
  202.     <div class='page-right-box-in'>
  203.         <ul>
  204. <li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3357' title='(57 komentß°∙)'>Se°azenφ tabulky JavaScriptem snadno a rychle</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3363' title='(29 komentß°∙)'>JavaScript, programujeme internetovΘ aplikace</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3364' title='(29 komentß°∙)'>Kam pat°φ menu</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3368' title='(20 komentß°∙)'>Eric Meyer o CSS - Ovlßdn∞te kaskßdovΘ styly!</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3380' title='(16 komentß°∙)'>VyΦiÜt∞nφ tabulky z MS Wordu v MSIE JavaScriptem</a></li>
  205.         </ul>
  206.     </div>
  207. </div>
  208.  
  209.  
  210.  
  211. <div class='page-right-box emailserv'><h3>Email servis</h3><div class='page-right-box-in'><form action='prihlaseni.asp' method='post'><div class='shell'><input class='text' type='text' name='adresa' /></div><div class='shell'><input class='radio' type='radio' value='1' name='co' checked='checked' />T²dennφ p°ehled Φlßnk∙</div><div class='shell'><input class='radio' type='radio' value='2' name='co' />HELP konference</div><div class='shell'><input class='submit' type='submit' value='P°ihlßsit' /></div></form></div></div>
  212. </div>
  213. <div class='page-maker'> </div><div class='page-maker-white'> </div></div>
  214. <div id='page-foot'><div id='page-foot-menu'><a href='http://interval.cz/reklama.asp'>Inzerce na Interval.cz</a> | <a href='http://interval.cz/redakce.asp'>Redakce Interval.cz</a> | <a href='http://interval.cz/autori.asp'>Hledßme novΘ autory</a></div><div id='issn'>ISSN 1212-8651</div><div id='page-foot-zoner'>© Zoner software, s.r.o., vÜechna prßva vyhrazena, tento server dodr₧uje <a href='http://interval.cz/privacy.asp'>prßvnφ p°edpisy</a>o ochran∞ osobnφch ·daj∙.</div></div>
  215. </body>
  216. </html>