1 / 11

DOM

DOM. Document. DOM. XML Data. DOM — Schemat przetwarzania. Odczyt dokumentu i utworzenie drzewa obiektów w pamięci Przetwarzanie dokumentu (wyszukiwanie/dodawanie/usuwanie) Zapis wyniku. Przykładowy dokument XML. <root> <osoba imie=" Jan " nazwisko=" Kowalski ">

yorick
Download Presentation

DOM

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DOM Document DOM XML Data

  2. DOM — Schemat przetwarzania • Odczyt dokumentu i utworzenie drzewa obiektów w pamięci • Przetwarzanie dokumentu (wyszukiwanie/dodawanie/usuwanie) • Zapis wyniku

  3. Przykładowy dokument XML <root> <osoba imie="Jan" nazwisko="Kowalski"> Zatrudniony na stanowisku programisty </osoba> <osoba imie="Anna" nazwisko="Kowalska"> Zatrudniona na stanowisku asystenta </osoba> </root>

  4. DOM — Przykład Przykład pokazujący wczytywanie dokumenty do pamięci import javax.xml.parsers.*; import org.w3c.dom.*; publicclass DomDemoOdczytu { publicstaticvoid main(String argv[]) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse("c://przyklad.xml"); //teraz możemy wykonywać operację na obiekcie dokument } }

  5. Typy węzłów — nodeType() Stałe: ELEMENT_NODE, ATTRIBUTE_NODE, TEXT_NODE, . . .

  6. Reprezentacja w pamięci <root> <osoba imie="Jan" nazwisko="Kowalski"> Zatrudniony na stanowisku … </osoba> <osoba imie="Anna" nazwisko="Kowalska"> Zatrudniona na stanowisku … </osoba> </root> • Element - <root>, <osoba> • Attr – imie, nazwisko • Text – Zatrudniony…, Zatrudniona…

  7. Operacje odczytu danych • Document.getDocumentElement() – zwraca główny element dokumentu (zawsze musi być jeden taki element) • Node. getElementsByTagName(nazwa) – zwraca listę elementów, o określonej nazwie • Element.getAttribute(nazwa) – używane do wyciągnięcia danych z atrybutu • Node.getTextContent() – wyciąga dane tekstowe

  8. Przykład operacji odczytu <root> <osoba imie="Jan" nazwisko="Kowalski"> Zatrudniony na stanowisku … </osoba> <osoba imie="Anna" nazwisko="Kowalska"> Zatrudniona na stanowisku … </osoba> </root> Element root = document.getDocumentElement(); NodeList osoby = root.getElementsByTagName("osoba"); int liczbaOsob = osoby.getLength(); for(int i=0; i<liczbaOsob; i++) { Element osoba = (Element)osoby.item(i); Attr attrImie = osoba.getAttributeNode("imie"); String imie = attrImie.getValue(); //alternatywnysposóbodczytuatrybutu: String nazwisko = osoba.getAttribute("nazwisko"); String opis = osoba.getTextContent(); System.out.println(nazwisko+" "+imie+" "+opis); } //Wynikdziałaniakodu: //KowalskiJanZatrudnionynastanowisku... //KowalskaAnnaZatrudnionanastanowisku...

  9. Tworzenie XML w pamięci • Pusty dokument tworzymy instrukcją: doc=DocumentBuilder.newDocument(); • Element zawsze tworzymy z dokumentu Element elem = doc.createElement(„nazwa”); • Dodanie elementu do dokumentu lub innege elementu: parent. appendChild(elem); • Dodanie atrubutu elem.setAttribute(„nazwa”,”wartość”); • Dodanie tekstu do elementu elem.setTextContent(„dane tekstowe”);

  10. Przykład tworzenia dokumentu Document document = builder.newDocument(); Element root = document.createElement("root"); document.appendChild(root); Element osoba1 = document.createElement("osoba"); osoba1.setAttribute("imie", "Jan"); osoba1.setAttribute("nazwisko", "Kowalski"); osoba1.setTextContent("Zatrudniony na stanowisku..."); root.appendChild(osoba1); ... root.appendChild(osoba2); <root> <osoba imie="Jan" nazwisko="Kowalski"> Zatrudniony na stanowisku … </osoba> <osoba imie="Anna" nazwisko="Kowalska"> Zatrudniona na stanowisku … </osoba> </root>

More Related