Práce s XML a XSL

XML & XSLT je nezávislé na platformě a slouží pro výměnu dat mezi platformami

Tuesday, 26. June 2007

Úvod

XML jako značkovací jazyk je již poměrně dobře zažitým pojmem a není třeba jej nijak představovat. S tímto značkovacím jazykem úzce souvisí transformační jazyk XSLT. Transformační jazyk eXtensible Stylesheet Language Transformations slouží k převodům zdrojových dat ve formátu XML do libovolného požadovaného výstupu.

XML

syntaxe:

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="xsl.xsl" media="screen"?>
  <stanice>
    <opravyupravyhw>
      <polozka>
        <OriginalModTime>25.06.2007 15:36:25</OriginalModTime>
        <Form>hwentry</Form>
        <idstanice>50C7233BDAC4458CC12572FF0048582C</idstanice>
        <datum>25.06.2007</datum>
        <typzmeny>oprava</typzmeny>
        <popis>Výměna zdroje</popis>
        <priloha />
      </polozka>
    </opravyupravyhw>
  </stanice>

 

<?xml-stylesheet type="text/xsl" href="xsl.xsl" media="screen"?>

zde je deklarace, jak se má dané xml zobrazit. V tomto případě se zobrazí pomocí šablony xsl.xsl. To znamená, že transformace bude probíhat na straně klienta. Pomocí jednoduchých funkcí lze zajistit, aby parser probíhal na straně serveru.

XSLT

- slouží k převodům zdrojových dat ve formátu XML do libovolného požadovaného výstupu

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet   xmlns:xsl='http://www.w3.org/1999/XSL/Transform'   version='1.0'>
<xsl:output method="xml" indent="yes" doctype-system="
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" doctype-public="-//W3C//DTD XHTML
1.0 Strict//EN" />
 <xsl:template match="/stanice">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
 <head>
  <meta http-equiv="content-Type" content="text/html; charset=utf-8" />
  <title>Karta stanice</title>
 </head>
   <table>
    <tr>
      <td colspan="3">Úpravy a opravy počítače:
      </td>
    </tr>
    <tr>
      <td>Druh:
      </td>
      <td>Datum:
      </td>
      <td>Popis:
      </td>
    </tr>
<xsl:for-each select="/stanice/opravyupravyhw/polozka">
    <tr>
      <td><xsl:value-of select="typzmeny" />
      </td>
      <td><xsl:value-of select="datum" />
      </td>
      <td><xsl:value-of select="popis" />
      </td>
    </tr>
</xsl:for-each>   
  </table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<xsl:template match="/stanice"> 

je defaultní nastavení root adresáře

<xsl:for-each select="/stanice/opravyupravyhw/polozka"> 

je pro výběr každé položky / provede se tolikrát, kolikrát je zde obsažena daná položka, ukončuje se pomocí

</xsl:for-each>
<xsl:value-of select="popis" />

výběr jednotlivé položky

Zpracování XML souborů - rychlost čtení SAX versus DOM

V moderních programovacích jazycích známe dva základní typy přístupů ke XML souborům:

1. SAX, jednosměrný mechanizmus čtení dat, která lze dále zpracovat. V .NET pracuje pod třídou XmlReader.

2. DOM, kde je k dispozici flexibilní navigace, včetně možností zápisu. Tyto rozšířené možnosti jsou vykoupené (možná) významně vyššími nároky na paměť. V .NET pracuje pod třídou XmlDocument.

Čtení dat pomocí DOM (XmlDocument) je v .NET zhruba 2-3x (u velkého souboru na lokálním disku 5x) pomalejší proti čtení pomocí SAX (XmlReader).

Parser

Parser je program, který analyzuje předložená data (obvykle textový soubor) a vyhledává v něm prvky odpovídající definici určitého jazyka. Obvykle provádí syntaktický rozbor zdrojových kódů napsaných v daném programovacím jazyce.

rozklad parseru

rozklad parseru: 1 + 2 * 3

XML

- v případě XML je parser program, který kontroluje správnost XML dokumentů.

DOM parser (DOM = Document Object Model) vezme XML soubor a vyrobí z něho obraz v paměti
SAX parser (SAX = Simple API for XML) postupně prochází XML soubor a zobrazuje události. Je na programátorovi, aby tyto události zpracoval.

 zdroj: encyklopedie.seznam.cz, neo.cz

 


systém spravován pomocí webmaker.ooo.cz
©2006-2024 Tomáš Hanus | ixulot | ixodesign.cz | RSS