Význam ostrůvků v XML

15. prosince 2001

Velmi často se setkávám s dotazy týkajících se využití XML v běžných internetových stránkách. Pokud tedy trpíte podobným problémem, pokusím se vám postupně přiblížit několik základních postupů, pro které najdete na svém webu uplatnění. Dnes to jsou datové ostrůvky.

Nebudu vás trápit základy XML. Nebudu vás dokonce nudit ani povídáním o DTD a XSL. Chci vás inspirovat a ukázat, že XML není jazykem vyhrazeným pouze pro programátory velkých aplikací, ale jeho kladů můžete klidně využít i na své stránce o životě na vsi.

Prvním a asi nejlepším příkladem použití XML na webu jsou Data Islands (Datové ostrůvky). Takovým datovým ostrůvkem může být například kus XML kódu přímo ve stránce HTML (ASP, PHP aj.) tak, jak to vidíte na následujícím výpise:

<html>
<head>
<title>Moje XML stránka</title>
</head>
<body>
<xml id=“mujdatovyostruvek“>
  <mojedata>
    <jmeno>Petr Liška</jmeno>
    <domov>Lesní 25, České Budějice</domov>
  </mojedata>
</xml>
<h3>Vítejte na stránce Pítra Foxe</h3>
</body>
</html>

To ale není samo o sobě nijak převratné a stěží si lze představit nějaké rozumné využití. Zajímavější je to, že k datům XML ostrůvku můžete velmi jednoduše přistupovat. Zkuste změnit výše uvedený kód:

<html>
<head>
<title>Moje XML stránka</title>
</head>
<body>
<xml id=“mujdatovyostruvek“>
 <mojedata>
   <jmeno>Petr Liška</jmeno>
   <domov>Lesní 25, České Budějice</domov>
 </mojedata>
</xml>
<H3>Vítejte na stránce Pítra Foxe</h3>
Pravé jméno: <span datasrc=“#mujdatovyostruvek“ datafld=“jmeno“></span>
<br />
Kde bydlím: <span datasrc=“#mujdatovyostruvek“ datafld=“domov“></span>
</body>
</html>

Jak vidíte, a přesvědčit se o tom můžete i zde (fox.htm), lze snadno a bez problémů zobrazit XML data v HTML dokumentu. Vtip se skrývá v možnosti vytvořit ostrůvek dat připojením externího souboru. Vytvoříte ho vložením odkazu na soubor s XML daty:

<xml id=“mojedata“ src=“xmlstranka.xml“></xml>

Takový soubor pak může obsahovat například informace o členech českobudějovického houbařského oddílu Prašivka. Zkuste se nyní podívat na následující příklad ve kterém si do HTML stránky zobrazíte XML data o deseti nejaktivnějších houbařích ze zmiňovaného klubu.

Nejdříve si vytvoříte soubor top10.xml s požadovanými daty.

<?xml version=“1.0″ encoding=“Windows-1250″?>
 <topten>
   <clen>
    <id_clena>21</id_clena>
    <jmeno>Petr Votava</jmeno>
    <clenem_od>12.11.1984</clenem_od>
    <letostni_ulovek>146 kg</letostni_ulovek>
    <nejedovatych>143 kg</nejedovatych>
  </clen>
  <clen>
    <id_clena>2</id_clena>
    <jmeno>Ferdinand Dočekal</jmeno>
    <clenem_od>11.7.1903</clenem_od>
    <letostni_ulovek>140 kg</letostni_ulovek>
    <nejedovatych>4 kg</nejedovatych>
  </clen>

Poté stačí vytvořit jednoduchou stránku s tabulkou, do které se budou data generovat (resp. kterou data vygenerují).

<html>
<head>
<title>Top 10 – vítězové houbařské ligy</title>
</head>
<body>
<h3>Vítězové letošní houbařské ligy</h3>
<xml id=“topten“ src=“top10.xml“></xml>
<table width=“300″ border=“1″ datasrc=“#topten“>
<tr>
  <td width=“110″> ID člena: </td>
  <td width=“190″> <span datafld=“id_clena“></span> </td>
</tr>
<tr>
  <td width=“110″> Jméno: </td>
  <td width=“190″> <span datafld=“jmeno“></span> </td>
</tr>
<tr>
  <td width=“110″> Členem od: </td>
  <td width=“190″> <span datafld=“clenem_od“></span> </td>
</tr>
<tr>
  <td width=“110″> Úlovek: </td>
  <td width=“190″> <span datafld=“letosni_ulovek“></span> </td>
</tr>
<tr>
  <td width=“110″> Z toho nejedovatých: </td>
  <td width=“190″> <span datafld=“nejedovatych“></span> </td>
</tr>
<tr>
  <td width=“100%“ colspan=“2″><br /></td>
<tr>
</table>

</body>
</html>

Celý příklad najdete zde.

Jak jste si všimli, využil jsem k zobrazení dat tabulkové vazby, kdy jsem tabulku svázal s našim datovým/houbovým ostrůvkem. Důležité jsou pro nás tedy tyto řádky:

<xml id=“topten“ src=“top10.xml“></xml>
(připojí ke stránce zdroj dat, „id“ nám pomůže k pozdějšímu odkazování na tento zdroj; „src“ je cesta k tomuto zdroji/xml stránce)
<table … datasrc=“#topten“>
(definuje vazbu tabulky s daty, „datasrc“ obsahuje název přiřazeného zdroje)
<span datafld=“jmeno“></span>
(postará se o zobrazení části dat, zde jména houbaře)

Nyní už je tedy jasné, kde tkví možnost využití XML „neodborníky“ a jaké jsou výhody takového počínání.

Možná teď namítnete, že takto a mnohem snadněji lze přeci využít některý ze serverových jazyků (ASP, PHP) ve spojení s databází, ale uvědomte si, že ne každý má přístup k takto vybavenému serveru. Navíc je předchozí příklad užitečný a použitelný i pokud touto vybaveností trpíte. Tabulku byste totiž museli spolu s daty vygenerovat, což je dost pracné, nemluvě o "uvozovkové syntaxi“ v ASP, kterou mnoho začátečníků příliš nezvládá. S Data Islands řešením odpadají starosti s generováním části tabulky a kód je mnohem přehlednější. Zkuste si například představit katalog knih se stovkou položek. Zdroj dat je také o něco univerzálnější než scriptové řešení.

Samozřejmě, že stránka s XML daty nemusí mít nutně příponu XML, může to být například ASP či PHP soubor, který nám XML data generuje z databáze.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Předchozí článek Jak psát vlastní funkce pro ASP
Další článek Jak na chybu 404 pomocí PHP

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *