ARCHIV |
|||||
Software (10844)
Distribuce (131)
Skripty (697)
Menu
Diskuze
Informace
|
Programujeme s XML (4.) - DOM v JavěV předchozích dílech jsme probrali většinu DOMu, a proto by nebyl špatný
nápad naše znalosti shrnout v nějaké ukázce. Dnes se tedy podíváme na
jednoduchý telefoní seznam v XML v Javě.
Náš telefoní seznam používá grafickou knihovnu Swing a konkrétně komponentu JTable, jedinou zajímavou částí programu je tedy třída <?xml version="1.0" encoding="UTF-8"?> <phone-book> <person> <first-name>Franta</first-name> <surname>Novák</surname> <phone>+420999123456</phone> <email>franta at novak dot mars</email> </person> </phone-book> Vytváříme nový (prázdný) dokumentpublic PhoneBookTableModel() { rowCount = 0; try { DOMImplementation impl = DocumentBuilderFactory.newInstance() .newDocumentBuilder().getDOMImplementation(); doc = impl.createDocument(null,"phone-book",null); } catch (java.lang.Exception ex) { // Nelze vytvorit dokument, nema tedy smysl pokracovat v behu System.out.println("Cannot create Document: "+ex.toString()); System.exit(1); } }
Zde dokument vytváříme jiným způsobem než tím, který jsem popisoval v prvním díle. Nejprve pomocí metody getDOMImplementation() třídy Načítáme dokument ze souborupublic PhoneBookTableModel(java.lang.String uri) throws PhoneBookException { try { DocumentBuilder builder=DocumentBuilderFactory.newInstance().newDocumentBuilder(); doc = builder.parse(uri); } catch (java.lang.Exception ex) { // Neco je spatne, vicemene nas nezajima co throw new PhoneBookException("Cannot load document: "+ex.toString()); } checkDocumentStructure(); }
Opět získáme instanci třídy private void checkDocumentStructure() throws PhoneBookException{ if (!doc.getDocumentElement().getNodeName().equals("phone-book")) throw new PhoneBookException("Wrong document: "+doc.getDocumentElement().getNodeName()); rowCount=doc.getDocumentElement().getElementsByTagName("person").getLength(); fireTableStructureChanged(); }
Během vytváření instance třídy Ukládáme dokumentsynchronized public void saveToFile(java.io.File file) throws PhoneBookException { try { javax.xml.transform.TransformerFactory.newInstance().newTransformer(). transform(new javax.xml.transform.dom.DOMSource(doc), new javax.xml. transform.stream.StreamResult(file)); } catch (Throwable ex) { // Neco je spatne, vicemene nas nezajima co throw new PhoneBookException("Cannot save document"); } }
Dokument ukládáme přesně způsobem popsaným v prvním díle. Prostřednictvím metody newTransformer() tovární třídy
Příště se podíváme, jak s naším dokumentem
Související články
Předchozí Celou kategorii (seriál) Další
Programujeme s XML (1.) Document Object Model
Programujeme s XML (2.) - DOM v rychlíku Programujeme s XML (3.) - Vytváříme uzly 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 Předchozí Celou kategorii (seriál) Další
|
Vyhledávání software
Vyhledávání článků
28.11.2018 23:56 /František Kučera 12.11.2018 21:28 /Redakce Linuxsoft.cz 6.11.2018 2:04 /František Kučera 4.10.2018 21:30 /Ondřej Čečák 18.9.2018 23:30 /František Kučera 9.9.2018 14:15 /Redakce Linuxsoft.cz 12.8.2018 16:58 /František Kučera 16.7.2018 1:05 /František Kučera
Poslední diskuze
31.7.2023 14:13 /
Linda Graham 30.11.2022 9:32 /
Kyle McDermott 13.12.2018 10:57 /
Jan Mareš 2.12.2018 23:56 /
František Kučera 5.10.2018 17:12 /
Jakub Kuljovsky | |||
ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2024) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze |