Vyhledávání a dotazování v XML

  • Přečtěte si XQuery tutoriál pro rychlé seznámení s možnostmi jazyka XQuery. S možnostmi jazyka a příklady použití vás seznámí i další dokument.

  • Stáhněte si ukázkové dokumenty a dotazy. V adresáři use-cases naleznete ukázkové dotazy.

  • Libovolný dotaz si můžete vyzkoušet:

    xquery dotaz.xq

    Předpokládáme přitom, že dotaz je uložen v souboru dotaz.xq.

    Ještě pohodlnější možností je editovat a provádět dotazy přímo v editoru oXygen.

  • Zkuste vytvořit XQuery dotazy poskytující odpovědi na následující dotazy.

    [Tip]Tip

    Z dotazu se na ukázkové dokumenty můžete odvolat pomocí zápisu doc("soubor.xml").

    1. Ze souboru zamestnanci.xml vypište seznam zaměstnanců a u každého seznam jeho podřízených.

      Příklad 1. Očekávaný výstup

      <vysledek>
         <zamestnanec>
            <jmeno>Procházka Karel</jmeno>
            <podrizeni/>
         </zamestnanec>
         <zamestnanec>
            <jmeno>Novotná Alena</jmeno>
            <podrizeni>
               <jmeno>Klíma Josef</jmeno>
            </podrizeni>
         </zamestnanec>
         <zamestnanec>
            <jmeno>Klíma Josef</jmeno>
            <podrizeni/>
         </zamestnanec>
         <zamestnanec>
            <jmeno>Pinkas Josef</jmeno>
            <podrizeni/>
         </zamestnanec>
         <zamestnanec>
            <jmeno>Kládová Adéla</jmeno>
            <podrizeni>
               <jmeno>Procházka Karel</jmeno>
               <jmeno>Novotná Alena</jmeno>
               <jmeno>Pinkas Josef</jmeno>
            </podrizeni>
         </zamestnanec>
      </vysledek>

    2. Ze souboru zamestnanci.xml vypište seznam zaměstnanců, kteří mají nějaké podřízené. U každého i seznam jeho podřízených.

      Příklad 2. Očekávaný výstup

      <vysledek>
         <zamestnanec>
            <jmeno>Novotná Alena</jmeno>
            <podrizeni>
               <jmeno>Klíma Josef</jmeno>
            </podrizeni>
         </zamestnanec>
         <zamestnanec>
            <jmeno>Kládová Adéla</jmeno>
            <podrizeni>
               <jmeno>Procházka Karel</jmeno>
               <jmeno>Novotná Alena</jmeno>
               <jmeno>Pinkas Josef</jmeno>
            </podrizeni>
         </zamestnanec>
      </vysledek>

    3. Ze souboru zamestnanci.xml vypište seznam zaměstnanců a u každého z nich kolik má podřízených.

      Příklad 3. Očekávaný výstup

      <vysledek>
         <zamestnanec>
            <jmeno>Procházka Karel</jmeno>
            <pocet_podrizenych>0</pocet_podrizenych>
         </zamestnanec>
         <zamestnanec>
            <jmeno>Novotná Alena</jmeno>
            <pocet_podrizenych>1</pocet_podrizenych>
         </zamestnanec>
         <zamestnanec>
            <jmeno>Klíma Josef</jmeno>
            <pocet_podrizenych>0</pocet_podrizenych>
         </zamestnanec>
         <zamestnanec>
            <jmeno>Pinkas Josef</jmeno>
            <pocet_podrizenych>0</pocet_podrizenych>
         </zamestnanec>
         <zamestnanec>
            <jmeno>Kládová Adéla</jmeno>
            <pocet_podrizenych>3</pocet_podrizenych>
         </zamestnanec>
      </vysledek>
      

    4. Ze souboru db.xml vypište všechny zkratky seřazené podle abecedy. Každou zkratku jen jednou. Zkratky jsou uloženy v elementu ACRONYM.

    5. Předchozí dotaz rozšiřte tak, aby vypsal počet výskytů každé zkratky v podobě HTML tabulky.

Další informace o XQuery