Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.mkyong.seo; // označení balíku s třídami
- import javax.xml.parsers.DocumentBuilderFactory; // naimportované třídy z našeho balíku, které použijeme
- import javax.xml.parsers.DocumentBuilder;
- import org.w3c.dom.Document;
- import org.w3c.dom.NodeList;
- import org.w3c.dom.Node;
- import org.w3c.dom.Element;
- import java.io.File;
- public class ReadXMLFile { // začínající blok třídy
- public static void main(String argv[]) { //blok dany metodou
- try { // Začátek chráněného bloku (Pokud nastane chyba, přejde do catch bloku, pro zachycení chyby)
- File fXmlFile = new File("staff.xml"); // Vytvoření souboru. Parametrem je cesta k souboru (Pokud se nachází ve stejném adresáři jako je soubor s tímto kódem, stačí název. Jinak se musí uvést cesta)
- DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); //Tovární API pro vytvoření parseru pro XML hierarchii
- DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); //Vytvoření instance pro vytvoření dokumentu
- Document doc = dBuilder.parse(fXmlFile); //Vytvoření samotného dokumentu, do kterého jsou naparsovanány data z výše vytvořeného dokumentu
- doc.getDocumentElement().normalize(); // Normalizace dat v dokumentu (úprava, pro zjednodušení parsování)
- System.out.println("Root element :" + doc.getDocumentElement().getNodeName()); //vypiš Aktuální element : "název aktuálního elemetnu" např. <zamestnanci></zamestnanci> Nejspíš vždy první element
- NodeList nList = doc.getElementsByTagName("staff"); //přiřazení prvků s tagem "Hlavicky" do listu
- System.out.println("----------------------------"); //vypiš ---------------------------
- for (int temp = 0; temp < nList.getLength(); temp++) { //Cyklus od 0 do N (počet prvků v dokumentu)
- Node nNode = nList.item(temp); //Vytvoření Uzlu z listu (prvek z listu získám na základě indexu "temp")
- System.out.println("\nRoot Element :" + nNode.getNodeName()); //vypiš Aktuálně první a hlavní element : "název aktuálního elemetnu" např. <zamestnanci></zamestnanci>
- if (nNode.getNodeType() == Node.ELEMENT_NODE) { // Pokud je uzel typu "Element" (obsahuje níže uvedené atributy jako ID, jméno, aj)
- Element eElement = (Element) nNode; // Vytvoření se objekt Element pomocí přetypování z uzlu a vypíšou se data, které obsahuje
- System.out.println("ID zaměstnance : " + eElement.getAttribute("id")); // vypiš atribut elementu "id", použije se getAttribute protože je to vždy číslo // vypiš atribut elementu "id", použije se getAttribute protože je to vždy číslo
- System.out.println("Jméno : " + eElement.getElementsByTagName("firstname").item(0).getTextContent()); //jelikož obsahuje text
- System.out.println("Přijmení : " + eElement.getElementsByTagName("lastname").item(0).getTextContent());
- System.out.println("Uživatelské jméno : " + eElement.getElementsByTagName("nickname").item(0).getTextContent());
- System.out.println("Plat : " + eElement.getElementsByTagName("salary").item(0).getTextContent());
- System.out.println(eElement.getElementsByTagName("firstname").item(0).getTextContent()+ " neco" ); //zkouším přidat text za element
- System.out.println(eElement.getElementsByTagName("firstname").item(0).getTextContent() //zkouším poskládat větu.
- + " " + eElement.getElementsByTagName("lastname").item(0).getTextContent()
- + " je superborec." + " A bere plat" + " " + eElement.getElementsByTagName("salary").item(0).getTextContent() +".");
- }
- }
- } catch (Exception e) { //Pokud nastala nějaká chyba v přechozím bloku "try", je zachycena pomocí catch bloku a vypsána.
- e.printStackTrace(); //Vypsání chyby
- }
- }
- } //ukončení třídy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement