|
|||||||||||||||||||||||||||||||||||||||||||||||
Menu
Distributions (131)
bootable [55]
commercial [7] no-commercial [42] unclassified [20] [7]
Software (10844)
|
Programujeme s XML (3.) - Vytváříme uzlyJiž umíme vcelku rozumně zpracovat dokument, který od někud načteme,
co když ovšem potřebujeme vytvořit celý v paměti a nebo do existujícího
něco připsat?
Právě proto má třída Vkládáme elementyNejprve vytvoříme instanci (zatím prázdného) elementu, který chceme vložit:
>>> element = doc.createElement("prvni-element") A ten poté vložíme někam do dokumentu, třeba na konec kořenového elementu:
>>> doc.documentElement.appendChild(element)
Zde narážíme na první místo, kde reálně hrozí, že způsobíme nějakou
výjimku. DOM zná jeden druh výjimky, třídu
>>> doc2.documentElement.appendChild(element)
A zde hned vidíme, že elementy vytvořené voláním metod jedné instance třídy
Exception in thread "main" org.apache.crimson.tree.DomEx: WRONG_DOCUMENT_ERR: That node doesn't belong in this document.
neboli výjimku
Též můžeme vyvolat výjimku
Poslední výjimkou ke které může dojít, je Vkládáme textová data, komentáře a sekce CDATA
Všechny tři tyto objekty jsou vlastně totéž - text v dokumentu a liší
se pouze syntaxí a dalším zpracováním. Je tedy logické, že jsou všechny
odvozeny od společného předka, třídy
>>> comment = doc.createComment("Ja jsem komentar") Musíme si ovšem dát pozor, co se snažíme do dokumentu vložit, obecně není dobře pokud se snažime vložit nějaké netisknutelné znaky mimo mezery, tabulátoru, nového řádku a podobně. Často se nám totiž může povést vyrobit dokument, který po uložení do souboru již nepůjde načíst. Další zrada spočíva v tom, že zatímco v textových uzlech jsou případné výskyty speciálních znaků (>, <, " ...) za entity nahrazovány automaticky, v komentářích a sekcích CDATA se tak neděje, musíme si tedy dát pozor na výskyt sekvence "-->", respektive "]]>".
>>> bc = doc.createComment("Rozbity --> komentar") Vytváříme instrukce pro zpracování
Instrukce pro zpracování jsou vlastně také textová data, ale nejsou odvozeny od třídy
>>> pi = doc.createProcessingInstruction("php","echo \"Hello World\";") Ještě je možné vkládat odkazy na entity, ale toto téma si necháme na později, do případného dílu o entitách. Osobně totiž považuji zpracování entit za jednu z nejnepřehlednějších části Document Object Modelu. Tímto konstatováním bych dnešní díl zakončil a doufám, že se sejdeme u dalšího pokračování, kde se vrhneme na první poněkud souhrnější ukázku, jednoduchou databázi.
Related article
Programujeme s XML (1.) Document Object Model Programujeme s XML (2.) - DOM v rychlíku Programujeme s XML (4.) - DOM v Javě Programujeme s XML (5.) - DOM v Javě II Programujeme s XML (6.) - DOM v Javě III. Programujeme s XML (7.) - Simple API for XML Programujeme s XML (8.) - XSL Programujeme s XML (9.) - Úvod do XSLT Programujeme s XML (10.) - Cyklíme v XSLT Programujeme s XML (11.) - Základy jazyka XPath Programujeme s XML (12.) - XPath a zpracování dat Programujeme s XML (13.) - XPath a řetězce Programujeme s XML (14.) - Podmínky v XSLT Programujeme s XML (15.) - Ovlivňujeme výstup Programujeme s XML (16.) - Metody výstupu v XSLT Programujeme s XML (17.) - Funkce v XSLT Programujeme s XML (18.) - XSLT a více souborů Programujeme s XML (19.) - XSLT v praxi Previous Show category (serial) Next
|
Szukanie oprogramowania
|
|||||||||||||||||||||||||||||||||||||||||||||
©Pavel Kysilka - 2003-2024 | maillinuxsoft.cz | Design: www.megadesign.cz |