XPath je jazyk, který slouží k

Podobné dokumenty
XML a XSLT. Kapitola seznamuje s šablonami XSLT a jejich použití při transformaci z XML do HTML

Z n a č k o v a c í j a z y k y. XSL (extensible Stylesheet Language) XSLT (extensible Stylesheet Language Transformation) XPath

Prezentace XML. XML popisuje strukturu dat, neřeší vzhled definice vzhledu:

XSLT extensible Stylesheet Language Transformation

XSLT a jmenné prostory

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.

PRG036 Technologie XML

XML snadno a rychle Martin Kuba, ÚVT MU

Dotazování nad XML daty a jazyk XPath

Příklad buňka tabulky

<knihy:clanek xmlns:kniha=

APLIKACE XML PRO INTERNET

Předmluva k druhému vydání 13. Úvod 17. ČÁST 2 Vytváření dokumentů XML 65

Tvorba informačních systémů

Obsah přednášky. XML DOM SAX XPath XSL transformace 1/46

X36DSV 3. cvičení. XML (extensible Markup Language) JavaScript. AJAX (Asynchronous JavaScript and XML) X36DSV. 2007/10 ver.2.0 1

XSL. Jirka Kosek. Poslední modifikace: $Date: 2005/12/01 09:35:37 $ Copyright Jiří Kosek. XML teorie a praxe značkovacích jazyků (IZI238)

TRANSFORMACE XML DOKUMENTŮ POMOCÍ JAZYKA XSLT

Syntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238)

Úvod do XSLT 2.0. Jirka Kosek Copyright Jiří Kosek

XML a DTD. <!DOCTYPE kořenový_element [deklarace definující vlastnosti jednotlivých elementů a atributů]> externí deklarace:

TÉMATICKÝ OKRUH Softwarové inženýrství

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Tvorba informačních systémů

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

E-learning a DocBook

Využití XML v DB aplikacích

Vysoká škola ekonomická v Praze

Parsování HTML. Pro účely testování jsem vytvořil stránku parsovani.html. Zdrojový kód:

Z n a č k o v a c í j a z y k y. XPath, XLink, XQuery, XPointer, XLinkTime, XForms

XSLT pomocí JavaScriptu v Mozille (... Opeře a Safari)

Úvod do databázových systémů B

Správnost XML dokumentu

Dotazování nad stromem abstraktní syntaxe

Rozhraní pro práci s XML dokumenty. Roman Malo

Interaktivní databáze s webovým rozhraním pro uchovávání a

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky DIPLOMOVÁ PRÁCE

Z n a č k o v a c í j a z y k y Jan Růžička

KOMBINACE XML A TEXu PŘI SAZBĚ DIVADELNÍ HRY Zdeněk Wagner

XML terminologie a charakteristiky. Roman Malo

Pravidla dokumentace

ZÁPADOČESKÁ UNIVERZITA V PLZNI

Vývoj Internetových Aplikací

Rodina formátů XML 1

Tvorba WWW stránek. Mojmír Volf

Distanční opora předmětu: Databázové systémy Tématický blok č. 5: Dotazovací jazyk XPath Autor: RNDr. Jan Lánský, Ph.D.

Budování banky úloh s parametrizovanými multimediálními objekty

Programování v jazyce JavaScript

Oracle XML DB. Tomáš Nykodým

MBI - technologická realizace modelu

Obsah prezentace. Co je to XML? Vlastnosti. Validita

Bakalářská práce. Vladimír Mareš

Další XML technologie

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

Principy XQuery. funkcionální jazyk vše je výraz, jehož vyhodnocením vznikne určitá hodnota základní typy stejné jako v XML Schema:

Webdesign II. Služby počítačových sítí 2009

Základy XML struktura dokumentu (včetně testových otázek)

Distanční opora předmětu: Databázové systémy Tématický blok č. 4: XML, DTD, XML v SQL Autor: RNDr. Jan Lánský, Ph.D.

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Programový generátor trendů Václav Bárta

Podpora XML v.net. Podpora XML v.net. nezávislý publicista. Jirka Kosek.

Jemný úvod do spracovania XML

Java a XML. 10/26/09 1/7 Java a XML

Překladač XSL šablon

Scraping script version 2 (CS)

Ukládání a vyhledávání XML dat

Specifikace ASYMBO XML feedu

Návrh technických pravidel pro tvorbu SIP

HTML XHTML JavaScript PHP ASP.Net Zajímavé odkazy

Analýza dat a modelování. Speciální struktury

Jazyky XQuery a XPath 1

Základy HTML (2. přednáška)

XML schémata XML teorie a praxe značkovacích jazyků (IZI238)

API pro práci s XML. Jirka Kosek. Poslední modifikace: $Date: 2014/12/17 17:15:28 $ Copyright Jiří Kosek

Interaktivní typová kontrola XML a ladění XML transformací

Diplomová práce Ukládání geodat do XML nativních databází

Web ČKR: návrh a realizace (2) Šárka Ocelková, ÚVT MU

BIBLIOGRAFICKÉ CITACE V DOCBOOKU A JEJICH TRANSFORMACE POMOCÍ DOCBOOK XSL

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

První kapitola úvod do problematiky

Jazyky pro popis dat

XML na papír. Bakalářská práce

Úvod do XML Technologie

TRANSFORMACE A PERZISTENCE XML

Accelerating XPath location steps

SQL a XML jako alternativa ke klasickým unixovým nástrojům

l Kontakt s klientem SSP Popis automatizované komunikace s ÚP ČR v součinnosti a exekuci

Dynamické stránky v praxi. Bedřich Košata

NSWI096 - INTERNET JavaScript

UNIVERZITA PARDUBICE FAKULTA ELEKTROTECHNIKY A INFORMATIKY

XFORMS JAKO NÁHRADA WEBOVÝCH FORMULÁŘŮ XFORMS - WEB FORMS SUCCESSOR

Statická analýza XSLT programů

Konečný automat. Jan Kybic.

Implementace XML signatur

WEB 2.0 A WEBOVÉ SLUŽBY. Ondřej Urbánek ondrej.urbanek@orchitech.cz

}w!"#$%&'()+,-./012345<ya

PRG036 Technologie XML

Transkript:

XPath Co je to?

XPath je jazyk, který slouží k vyhledávání/výběru elementů pomocí XSLT identifikaci elementů/částí dokumentu pomocí XPointer transformace elementů (XSLT) aj.

Uzly, které se rozlišují: kořenový uzel uzel s elementy uzel s textem uzel s atributy uzel s komentáři uzel se zpracovacími instrukcemi uzel se jmennými prostory

Ukázkový XML soubor <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="people.xsl"?> <!DOCTYPE people [ <!ATTLIST homepage xlink:type CDATA #FIXED "simple" xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"> <!ATTLIST person id ID #IMPLIED> ]> <people> <person born="1912" died="1954" id="p342"> <name> <first_name>alan</first_name> <last_name>turing</last_name> </name> <!-- Did the word computer scientist exist in Turing's day? --> <profession>computer scientist</profession> <profession>mathematician</profession> <profession>cryptographer</profession> <homepage xlink:href="http://www.turing.org.uk/"/> </person> <person born="1918" died="1988" id="p4567"> <name> <first_name>richard</first_name> <middle_initial>m</middle_initial> <last_name>feynman</last_name> </name> <profession>physicist</profession> <hobby>playing the bongoes</hobby> </person> </people>

Stromová struktura dokumentu

Lokační cesty podstatný výraz XPath min. jeden lokační krok identifikující množinu uzlů v dokumentu Jednoduchý příklad pro kořenový uzel / : <xsl:template match="/"> <html><xsl:apply-templates/></html>

Lokační kroky pro subelementy <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="people"> <xsl:apply-templates select="person"/> <xsl:template match="person"> <xsl:value-of select="name"/> </xsl:stylesheet>

Lokační kroky pro atributy <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <html> <xsl:apply-templates select="people"/> </html> <xsl:template match="people"> <table> <xsl:apply-templates select="person"/> </table> <xsl:template match="person"> <tr> <td><xsl:value-of select="name"/></td> <td><xsl:value-of select="@born"/></td> <td><xsl:value-of select="@died"/></td> </tr> </xsl:stylesheet> <html> <table> <tr> <td> Alan Turing </td> <td>1912</td> <td>1954</td> </tr> <tr> <td> Richard M Feynman </td> <td>1918</td> <td>1988</td> </tr> </table> </html>

Další lokační kroky comment() text() processing-instruction() <xsl:template match="comment( )"> <i>comment Deleted</i>

Další lokační kroky comment() text() processing-instruction() <xsl:template match="comment( )"> <i>comment Deleted</i> processing-instruction( ) processing-instruction('xml-stylesheet')

Zástupné výrazy * node() @* uzly s elementy: <xsl:template match="*"> <xsl:apply-templates select="*"/> všechny uzly (s elementy, textem, atributy, zprac. instr., jmennými prostory i komentáři) : node() výpis všech atributů elementu person do tagu: <xsl:template match="person"> <attributes><xsl:apply-templates select="@*"/></attributes>

Slučování vzorů pomocí @id @xlink:type * @* všechny uzly s elementy a atributy uzly s textem, komentáři a zprac. instrukcemi <xsl:template match="first_name last_name profession hobby"> <xsl:value-of select="text( )"/>

Složené lokační cesty (1) @název_atributu / comment() text() node() processing-instruction(). je aktuální kontextový uzel // jsou následníci kontext. uzlu

Složené lokační cesty (2) //@id/.. //middle_initial/../first_name <xsl:template match="comment()"> <span class="comment"><i><xsl:value-of select="."></i></span> <xsl:template match="name"> <strong><xsl:value-of select="."></strong> /people/person/name/first_name /people/person/name/first_name/text() <first_name>alan</first_name> <first_name>richard</first_name> Alan Richard

Predikáty pozor! <xsl:template match="//profession[.='physicist']"> //person [profession="physicist"] <,>,=,... //person[@born<=1976] pozor! <xsl:apply-templates select="//person[@born<=1976]"/> and, or //person[@born<=1920 and @born>=1910] /people/person[@born < 1950]/name[first_name = "Alan"]

Nezkrácené lokační cesty osa potomků rodičů sebe sama atributů následníků osa předchůdců osa následujících/předchozích sourozenců osa dalších/předchozích uzlů osa jmenných prostorů osa následníků osa předchůdců včetně sebe sama people/person/@id child::people/child::person/attribute::id

Dále podporujeme výrazy: 3.141529 2+2 'Rosalind Franklin' true( ) 32.5 < 76.2E-21 position()=last( ) atd.

Vychytávky (1) <xsl:value-of select="@id div 10"/> <xsl:template match="profession"> <xsl:if test=".='computer scientist' or.='physicist'"> <xsl:value-of select="."/> </xsl:if> <xsl:template match="profession"> <xsl:choose> <xsl:when test=".='computer scientist'"> <i><xsl:value-of select="."/></i> </xsl:when> <xsl:otherwise> <xsl:value-of select="."/> </xsl:otherwise> </xsl:choose>

Vychytávky (2) Funkce XPath vrací hodnotu: logickou číslo množinu uzlů řetězec

Některé funkce round(číslo) not(@id>400) sum(množina_uzlů) starts-with(last_name,'t') <xsl:apply-templates select="name[starts-with(last_name, 'T')]"/> concat( Zač, át, ek věty ) normalize-space( Řetězec plný mezer ) aj.

XPath nástroje Javy xerces v2: org.apache.xerces.impl.xpath.xpath extends java.lang.object java v5: interface XPath