Advertisement
Wity

Untitled

Oct 12th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.mkyong.seo; // označení balíku s třídami
  2.  
  3. import javax.xml.parsers.DocumentBuilderFactory; // naimportované třídy z našeho balíku, které použijeme
  4. import javax.xml.parsers.DocumentBuilder;
  5. import org.w3c.dom.Document;
  6. import org.w3c.dom.NodeList;
  7. import org.w3c.dom.Node;
  8. import org.w3c.dom.Element;
  9. import java.io.File;
  10.  
  11. public class ReadXMLFile { // začínající blok třídy
  12.  
  13.   public static void main(String argv[]) { //blok dany metodou
  14.      
  15.     try { // Začátek chráněného bloku (Pokud nastane chyba, přejde do catch bloku, pro zachycení chyby)
  16.  
  17.     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)
  18.     DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); //Tovární API pro vytvoření parseru pro XML hierarchii  
  19.     DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); //Vytvoření instance pro vytvoření dokumentu
  20.     Document doc = dBuilder.parse(fXmlFile); //Vytvoření samotného dokumentu, do kterého jsou naparsovanány data z výše vytvořeného dokumentu
  21.  
  22.     doc.getDocumentElement().normalize(); // Normalizace dat v dokumentu (úprava, pro zjednodušení parsování)
  23.  
  24.     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
  25.  
  26.     NodeList nList = doc.getElementsByTagName("staff"); //přiřazení prvků s tagem "Hlavicky" do listu
  27.  
  28.     System.out.println("----------------------------"); //vypiš ---------------------------
  29.  
  30.     for (int temp = 0; temp < nList.getLength(); temp++) { //Cyklus od 0 do N (počet prvků v dokumentu)
  31.  
  32.         Node nNode = nList.item(temp); //Vytvoření Uzlu z listu (prvek z listu získám na základě indexu "temp")
  33.  
  34.         System.out.println("\nRoot Element :" + nNode.getNodeName()); //vypiš Aktuálně první a hlavní element : "název aktuálního elemetnu" např. <zamestnanci></zamestnanci>
  35.        
  36.        
  37.         if (nNode.getNodeType() == Node.ELEMENT_NODE) { // Pokud je uzel typu "Element" (obsahuje níže uvedené atributy jako ID, jméno, aj)
  38.  
  39.             Element eElement = (Element) nNode; // Vytvoření se objekt Element pomocí přetypování z uzlu a vypíšou se data, které obsahuje
  40.  
  41.             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        
  42.             System.out.println("Jméno : " + eElement.getElementsByTagName("firstname").item(0).getTextContent()); //jelikož obsahuje text
  43.             System.out.println("Přijmení : " + eElement.getElementsByTagName("lastname").item(0).getTextContent());
  44.             System.out.println("Uživatelské jméno : " + eElement.getElementsByTagName("nickname").item(0).getTextContent());
  45.             System.out.println("Plat : " + eElement.getElementsByTagName("salary").item(0).getTextContent());
  46.        
  47.  
  48.            
  49.             System.out.println(eElement.getElementsByTagName("firstname").item(0).getTextContent()+ " neco" ); //zkouším přidat text za element
  50.            
  51.             System.out.println(eElement.getElementsByTagName("firstname").item(0).getTextContent() //zkouším poskládat větu.
  52.             + " " + eElement.getElementsByTagName("lastname").item(0).getTextContent()
  53.             + " je superborec." + " A bere plat" + " " + eElement.getElementsByTagName("salary").item(0).getTextContent() +".");
  54.            
  55.         }
  56.     }
  57.     } catch (Exception e) {   //Pokud nastala nějaká chyba v přechozím bloku "try", je zachycena pomocí catch bloku a vypsána.
  58.     e.printStackTrace(); //Vypsání chyby
  59.     }
  60.   }
  61.  
  62. } //ukončení třídy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement