Návrh a tvorba WWW Přednáška 8

Slides:



Advertisements
Podobné prezentace
Štěpán Šípal Gymnázium Čakovice. Dnešní témata  Vznik XHTML a předchůdci  Základní prvky XHTML dokumentu  Tagy a atributy  Elementy a jejich druhy.
Advertisements

Štěpán Bechynský. 2 Kompatibilita DOCTYPE META Tag – Hlavička protokolu HTTP – X-UA-Compatible: IE=7 3.
Úvod do HTML. Co je HTML  zkratka pro HyperText Markup Language  značkovací jazyk pro hypertext  umožňuje publikaci dokumentů na internetu.
Serialization (převod) Úvod 1 SGML W3C HTML 1.x. HTML4.0 xHTML 1.0. xHTML 2.x HTML 5 (xHTML 5) HTML 4.0 xml (xHTML 1.0) xHTML je dobřé zformovaný (well-formed)
David Pejčoch XML (Extensible Markup Language) Semistrukturovaná data Obecný značkovací jazyk Vyvinut a standardizován konzorciem W3C Zjednodušená.
Aplikační a programové vybavení
VISUAL BASIC Práce se soubory.
Semestrální práce KIV/PT Martin Kales Hana Hůlová.
Internetové publikování Doc. Ing. Petr Zámostný, Ph.D. místnost: A-72a tel.: 4222, 4167 (sekretariát ústavu 111)
C# pro začátečníky Mgr. Jaromír Osčádal
Práce s Xml ● Základní moduly pro práci s XML: – Xml.dom – Document Object Model API – Xml.dom.minidom ● Základní objekt je Dokument – stromová struktura.
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
XHTML Tvorba webových stránek. Vývoj značkovacích jazyků HTML – HyperText Markup Language  Značkovací jazyk pro vytváření www stránek. Pomocí značek.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
Milan Kryl(c) 2004 MFF UK Databáze Caché CSP Custom Tags vlastní značky.
Ing. Jan Mittner Základy MVC 2. Rozšíření layoutu 3. helpery 4. Bootstrap a přepis URL adres 2.
Návrh a tvorba WWW Přednáška 11
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Maturitní okruh 22: Úvod do HTML. Značkovací a klasické jazyky Klasické: převládá strukturovaný text (programovací kód), skripty jsou prováděny na straně.
OSNOVA: a)Programování se soubory b)Záloha databáze v souboru c) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování.
B. Miniberger, BIVŠ Praha 2009
Návrh a tvorba WWW Cvičení 4
Dokumentace objektů a zveřejnění funkcí
XML Schema Irena Mlýnková. Obsah XML – úvod, příklad, základní pojmy DTD – přehled XML Schema – podrobně.
KASKÁDOVÉ STYLY 1. 2 PRVNÍ STANDARD (CSS1) BYL PŘEDSTAVEN V ROCE 1996, PROTO STARŠÍ PROHLÍŽEČE ("ČTYŘKOVÉ" VERZE) IE A NN KASKÁDOVÉ STYLY NEPODPORUJÍ.
DTD DTD (Document Type Definition) je jinými slovy návod pro prohlížeč zpracovávající dokument. DTD (Document Type Definition) je jinými slovy návod pro.
Rozhraní SAX, SAX vs. SAX2 Jaroslav Ciml.
Jazyk XML Jazyk pro tvorbu strukturovaných dokumentů Syntaxí velmi podobný HTML Hlavní cíle návrhu: Snadná editace - jazyk je textový Snadné strojové zpracování.
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Copyright (C) 2000 Vema, a. s.1 V3 klient Michal Máčel Provozní integrace G2, HR/Win a internetu.
Ing. Jan Mittner Zend_Feed 2. XmlWriter 3. SimpleXml 4. sitemap 2.
Databázové modelování
Využití XML v DB aplikacích Michal Kopecký Výběr ze slajdů k 7. přednášce předmětu Databázové Aplikace (DBI026) na MFF UK.
RDF a RQL Roman Krejčík. RDF a RQL RDF – Resource Description Framework –Jazyk pro ukládání informací v XML –RDF Schema RQL – RDF Query Language –Dotazování.
XQuery Dotazovací jazyk XML Daniel Privalenkov. O čem bude prezentace Nutnost dotazovacího jazyku v XML Rychlý přehled XQuery Několik příkladů.
Práce s řetězci Řetězec je libovolný text nebo libovolná skupina znaků. Řetězec se také označuje jako string. Činnosti prováděné s řetězci: Počítání znaků.
Tvorba efektních www stránek pro každého Od historie až po současnost… Úvod Porovnání Validace Prohlížeče Závěr.
Vít Profant Obhajoba bakalářské práce
XML data na disku jako databáze Kamil Toman
XML eXtensible Markup Language Adolf Knoll Národní knihovna ČR
Vícerozměrný přístup pro indexování XML dat
Jazyk XML v geoinformatice
Lišta nástrojů Standard otevření, uložení a další manipulace se soubory (tj. projekty) načítání dat (mapových vrstev) „žluté plus“ změna měřítka odkaz.
Petr Šmíd Obsah prezentace Co je to XML ?
Web services. Co jsou webservices Součinná spolupráce počítačů v síti Technologie pro vzdálené volání procedur (RPC) Nezávislá na platformě Data v XML.
Ověření Možnosti Využití Jazyka XML a Formátu SVG Pro Potřeby Metainformačního Systému CAGI Zpracovatel:tomáš duchoslav Vedoucí: ing. Jan růžička.
Úvod do XML 2. část Zdeněk Žabokrtský (s využitím materiálů z
Úvod do XML S využitím materiálů z Zdeněk Žabokrtský.
Tvorba metainformačního systému pro prostorová data s využitím Internetových technologií Zpracovatel: Tomáš Duchoslav Vedoucí: Dr. Ing. Bronislava Horáková.
MICROSOFT OFFICE 2007/2010. Důvod změny Inovace technologií Nové možnosti použití Kompatibilita Ukončení tech. podpory starších verzí Office 2003 –
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
1 PRG036 – Technologie XML Přednáší: Irena Mlýnková Martin Nečaský
Perzistence XML dat Kamil Toman
Základy XML – struktura dokumentu (včetně testových otázek) Otakar Čerba Oddělení geomatiky Katedra matematiky Fakulta aplikovaných věd Západočeská univerzita.
YOUR LOGO C# Entity Framework. YOUR LOGO  Entity framework nám poskytuje: -Vytváří objektový model na základě databázového schématu -Mapuje tabulky,
XML a datový standard Zdeněk Jirkovec Softwarové Aplikace a systémy.
WWW a HTML Základní pojmy Ivo Peterka.
Úvod do Pythonu – IO operace se soubory.
XML Validace.
Úvod do JavaScriptu - DOM
Značkovací jazyky Začínáme.
Databázové systémy a SQL
Internetové publikování Dynamické HTML
TNPW1 JavaScript Ing. Jiří Štěpánek.
Úvod do JavaScriptu - DOM
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

Návrh a tvorba WWW Přednáška 8 PHP IV – Práce s XML SAX, DOM, SimpleXML, …

Opakování XML Extenible Markup Language (rozšiřitelný značkovací jazyk) je značkovací jazyk, který slouží k tvorbě dokumentů s vlastními elementy a atributy, které je možné validovat oproti vlastnímu schématu. Je tedy možné vytvořit de facto vlastní jazyk. XML je zjednodušenou podmnožinu jazyka SGML. První verze jazyka byla publikována v roce 1998.

SAX SAX (Simple API for XML) je rozhraní, které umožňuje procházet XML dokument a to bez potřeby, aby byl celý dokument nahrán do paměti. SAX generuje při nalezení např. počáteční značky, koncové značky či jakéhokoliv jiného prvku v dokumentu událost, prostřednictvím které si příslušnou část XML dokumentu obsloužíme. Vytvoření parseru Nastavení událostí pro parser $parser = xml_parser_create("utf-8"); xml_set_element_handler($parser, "startElement", "endElement"); xml_set_character_data_handler($parser, "characters");

SAX Funkce startElement Otevření spojení se serverem. Funkce endElement function startElement($parser, $name, $attrs) { global $level; foreach ($attrs as $key => $hodnota) { echo $key; echo $hodnota; } $level++; function endElement($parser, $name) { global $level; $level--; echo $level; }

DOM DOM (Document Object Model) je objektový model, který umožňuje procházet HTML a XML dokumenty. DOM načítá veškerá data do paměti a z nich vytváří hierarchický strom. Jeho použití je optimální pouze tam, kde zpracováváme relativně málo dat a kdy k jednotlivým elementům přistupujeme v náhodném pořadí a opakovaně. DOM Level Level 0 – obsahuje vše co předcházelo W3C DOM Level 1 – navigace v DOM dokumentu, manipulace s obsahem Level 2 – podpora jmenných prostorů Level 3 – skládá se z Core, Load and Save, XPath, Views and Formatting, Requirements, Validation

Strom modelu DOM

DOM Vytvoření objektu DOMDocument Načtení XML/HTML souboru Uložení XML/HTML souboru $dom = new DOMDocument(); $dom->load($fileName) $dom->loadXML($string) $dom->loadHTMLFile($fileName) $dom->loadHTML($string) $dom->save($fileName) $s = $dom->saveXML() $dom->saveHTMLFile($fileName) $s = $dom->saveHTML()

DOM dokument I. createAttribute — vytvoří nový atribut createAttributeNS — vytvoří nový atribut se jmenným prostorem createCDATASection — vytvoří nový uzel s CDaty createComment — vytvoří komentář createDocumentFragment — vytvoří nový fragment dokumentu createElement — vytvoří nový element createElementNS — vytvoří nový element se jmenným prostorem createEntityReference — vytvoří novou referenci entity createProcessingInstruction — vytvoří nový PI uzel createTextNode — vytvoří nový textový uzel getElementById — vrátí element přes ID getElementsByTagName — vrátí element přes jméno getElementsByTagNameNS — vrátí element přes jméno se jmenným prostorem importNode — importuje uzel do stávajícího dokumentu load — nahraje XML ze souboru loadHTML — nahraje řetězec HTML loadHTMLFile — nahraje HTML ze souboru loadXML — nahraje řetězec XML

DOM dokument II. normalizeDocument — normalizuje dokument registerNodeClass — registrace vlastní třídy do rozšíření DOM relaxNGValidate — validace dokumentu pomocí relaxNG relaxNGValidateSource — validace dokumentu pomocí relaxNG save — uloží interní XML strom do souboru saveHTML — uloží interní HTML dokument do řetězce saveHTMLFile — uloží interní HTML dokument do souboru saveXML — uloží interní XML strom do řetězce schemaValidate — validace dokumentu pomocí schématu schemaValidateSource — validace dokumentu pomocí schématu validate — validace dokumentu pomocí DTD xinclude — nahradí XIncludes v DOMDocument Object

DOM element getAttribute — vrátí hodnotu atributu getAttributeNode — vrátí atribut uzlu getAttributeNodeNS — vrátí atribut uzle getAttributeNS — vrátí hodnotu atributu getElementsByTagName — vybere element prostřednictvím jména tagu getElementsByTagNameNS — vybere element prostřednictvím jména tagu hasAttribute — zkontroluje, zda atribut existuje hasAttributeNS — zkontroluje, zda atribut existuje removeAttribute — odebere atribut removeAttributeNode — odebere atribut uzlu removeAttributeNS — odebere atribut setAttribute — přidá nový atribut setAttributeNode — přidá nový atribut uzlu setAttributeNodeNS — přidá nový atribut uzlu setAttributeNS — přidá nový atribut setIdAttribute — deklaruje atribut name setIdAttributeNode — deklaruje atribut name uzlu setIdAttributeNS — deklaruje atribut name

DOM uzel appendChild — přidá potomka na konec potomků C14N — kanonizuje (ujednocuje) uzly na řetězec C14NFile — kanonizuje (ujednocuje) uzly na soubor cloneNode — klonuje uzel getLineNo — vrátí číslo řádky pro uzel getNodePath — vrátí XPath pro uzel hasAttributes — kontroluje, zda má uzel atribut hasChildNodes — kontroluje, zda má uzel potomka insertBefore — přidá potomka před referenční uzel isDefaultNamespace — kontroluje, zda určený jmenný prostor výchozím prostorem isSameNode — testuje, zda dva uzly jsou totožné isSupported — testuje, zda je daná vlastnost v dané verzi podporována lookupNamespaceURI — vrátí URI jmenného prostoru prostor na základě prefixu lookupPrefix — vrátí prefix na základě jmenného prostoru normalize — normalizuje uzel removeChild — odebere potomka ze seznamu potomků replaceChild — nahradí potomka

SimpleXML SimpleXML je rozšíření PHP, které umožňuje pracovat s XML dokumenty. Jedná se o další xml parser, který je v PHP5 dostupný. Jeho výhodou je o proti ostatním parserum značná jednoduchost v použití. S obsahem dokumentu XML pracujeme prostřednictvím datových struktur. Základní pravidla SimpleXML: Vlastnosti určují iterátory prvku. Číselné indexy označují prvky. Nečíselné atributy označují atributy. Přístup k textovým datům umožňují řetězové převody.

SimpleXML Funkce SimpleXML Vytvoření SimpleXML objektu vytvoření SimpleXML uzlu z DOM uzlu vytvoření SimpleXML objekt ze souboru vytvoření SimpleXML objekt z řetězce Vytvoření SimpleXML objektu Vrácení správně strukturovaného XML domentu simplexml_import_dom (); simplexml_load_file("test.xml"); simplexml_load_string (); $xml = "<library><item>ISPWE</item></library>"; $sxe = new SimpleXMLElement($xml) $sxe->asXML();

SimpleXML Přidání potomka XML uzlu Přidání atributu k elementu Vrácení potomků uzlu Vrácení atributů elementu Vrácení počtu potomků elementu Spuštění XPath výrazu $company = $sxe->addChild(‘company’); $company->addAttribute(‘id’, ‘10’); $sxe->children(); $sxe->company[0]->attributes(); $sxe->count(); $sxe->xpath('/company');

XPath XPath je jazyk, prostřednictvím kterého lze adresovat určité části XML dokumentu a to pomocí výrazu. Xpath je standardem W3C. XPath výraz se skládá: osy testu uzlu predikátu XPath výraz vrací: logická hodnota (true nebo false) číslo textový řetězec množina uzlů ze stromu vstupního dokumentu část stromu dokumentu

XPath v DOM a SimpleXML DOM SimpleXML evaluate — vyhodnotí XPath výraz a vrátí typ výsledku query — vyhodnotí XPath výraz registerNamespace — registruje jmenný prostor v DOMXPath object registerPhpFunctions — registruje PHP funkci jako XPath funkci SimpleXML query – vyhodnocení XPath výrazu $xpath = new DOMXPath($dom); $title = $xpath->query('//title'); $sxe = new SimpleXMLElement($xml); $sxe->xpath('//title');

Příklad XPath $string = <<<XML <a> <b> <c>text</c> <c>stuff</c> </b> <d> <c>code</c> </d> </a> XML; $xml = new SimpleXMLElement($string); $result = $xml->xpath('/a/b/c'); while(list( , $node) = each($result)) { echo '/a/b/c: ',$node,"\n"; } $result = $xml->xpath('b/c'); echo 'b/c: ',$node,"\n";