Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.35 KB | None | 0 0
  1. /* 1. realizare metoda pentru a adauga doar o grupa noua
  2. - e mai simpla decat metoda pentru adaugarea unui student nou  -done
  3.  * 2. realizare metoda pentru a extrage toti studentii intr-un vector de obiecte de tip student
  4.  * 3. imbunatatire cod actual - extragere metoda gasesteGrupa dupa ID -
  5.  *  folosita atat in metodele aflaNumarStudenti cat si adaugaStudentNou
  6.  */
  7. import java.io.File;
  8. import java.io.PrintWriter;
  9. import java.util.ArrayList;
  10.  
  11. import javax.xml.parsers.DocumentBuilder;
  12. import javax.xml.parsers.DocumentBuilderFactory;
  13. import javax.xml.transform.Transformer;
  14. import javax.xml.transform.TransformerFactory;
  15. import javax.xml.transform.dom.DOMSource;
  16. import javax.xml.transform.stream.StreamResult;
  17.  
  18. import org.w3c.dom.Document;
  19. import org.w3c.dom.Element;
  20. import org.w3c.dom.Node;
  21. import org.w3c.dom.NodeList;
  22.  
  23. public class GrupeDomParser {
  24.  
  25.     private static Document document; // interfata ptr documente xml:Document
  26.     private static GrupeDomParser parser = new GrupeDomParser(
  27.     "D:\\workspace java\\curs 1 java lec\\1-Curs-XML\\1 curs xml\\res\\grupe.xml");
  28.  
  29.     public GrupeDomParser(String filePath) { // constructor cu argument calea
  30.                                                 // fisierului
  31.         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  32.         try {
  33.             DocumentBuilder builder = factory.newDocumentBuilder(); // obtinerea
  34.                                                                     // unui
  35.                                                                     // document
  36.                                                                     // builder
  37.             document = builder.parse(new File(filePath)); // crearea
  38.                                                             // documentului
  39.                                                             // dintr-un fisier
  40.         } catch (Exception e) {
  41.             System.out.println(e);
  42.         }
  43.     }
  44.  
  45.     public int aflaNumarStudenti(String idGrupa) { // afla nr de studenti dint-o
  46.         // anumita grupa data dupa
  47.         // id
  48.         int nrStudenti = -1;
  49.         NodeList grupe = document.getElementsByTagName("grupa");// lista cu
  50.         // grupele
  51.         int nrGrupe = grupe.getLength();
  52.         for (int i = 0; i < nrGrupe; i++) {
  53.             Element grupa = (Element) grupe.item(i);
  54.             if (grupa.getAttribute("id").equals(idGrupa)) {
  55.                 nrStudenti = grupa.getElementsByTagName("student").getLength();
  56.             }
  57.         }
  58.  
  59.         return nrStudenti;
  60.     }
  61.  
  62.     public static ArrayList<Node> adaugaStudenti(){
  63.         ArrayList <Node> al = new ArrayList<Node>();
  64.         NodeList listaStudenti = document.getElementsByTagName("student");
  65.        
  66.         for(int i = 0; i < parser.aflaNumarStudenti("1024");i++ ){
  67.             Node crtNode = listaStudenti.item(i);
  68.             if(crtNode instanceof Element)
  69.                 al.add(crtNode);
  70.         }
  71.         System.out.println("Continutul array-listului meu : " + al);
  72.         return al;
  73.     }
  74.  
  75.     public void adaugaGrupaNoua(String idAn, String idGrupa) {
  76.         Element grupaNoua = document.createElement("grupa");// creeaza tagul
  77.                                                             // grupa
  78.         grupaNoua.setAttribute("an", idAn);// setam un atribut nou care ia
  79.                                             // valoarea idAn
  80.         grupaNoua.setAttribute("id", idGrupa);
  81.  
  82.         NodeList listaGrupe = document.getElementsByTagName("lista_grupe");// lista
  83.                                                                             // cu
  84.         // lista-grupele
  85.         int nrLista_Grupe = listaGrupe.getLength();
  86.         for (int i = 0; i < nrLista_Grupe; i++) {
  87.             Element nrgrupa = (Element) listaGrupe.item(i);
  88.             nrgrupa.appendChild(grupaNoua);
  89.             System.out.println("Adaugare grupa noua efectuata");
  90.  
  91.         }
  92.  
  93.     }
  94.  
  95.     public void adaugaStudentNou(String idGrupa, String idStudent, String nume,
  96.             String prenume, String camin) {
  97.         Element studentNou = document.createElement("student");// creeaza tagul
  98.                                                                 // student
  99.         studentNou.setAttribute("id", idStudent);// ii setam un atribut numit
  100.                                                     // id, care ia valoarea
  101.                                                     // idStudent
  102.  
  103.         Element numeStudent = document.createElement("nume");// creeaza tagul
  104.                                                                 // nume
  105.         Element prenumeStudent = document.createElement("prenume");// creeaza
  106.                                                                     // tagul
  107.                                                                     // prenume
  108.  
  109.         numeStudent.appendChild(document.createTextNode(nume));// adauga la
  110.                                                                 // tagul
  111.                                                                 // numestudent
  112.                                                                 // TextNode-ul
  113.                                                                 // nume
  114.         prenumeStudent.appendChild(document.createTextNode(prenume));// adauga
  115.                                                                         // la
  116.                                                                         // tagul
  117.                                                                         // numestudent
  118.                                                                         // TextNode-ul
  119.                                                                         // prenume
  120.  
  121.         studentNou.appendChild(numeStudent); // adaugam tagurile numestudent si
  122.                                                 // prenumeStudent ca subtaguri
  123.                                                 // ale tagului studentNou
  124.         studentNou.appendChild(prenumeStudent);
  125.  
  126.         if (camin != null) {
  127.             Element caminStudent = document.createElement("camin");
  128.             caminStudent.appendChild(document.createTextNode(camin));// ca sa-l
  129.                                                                         // putem
  130.                                                                         // adauga
  131.                                                                         // unui
  132.                                                                         // tag
  133.                                                                         // "superior ",
  134.                                                                         // tb sa
  135.                                                                         // -l
  136.                                                                         // facem
  137.                                                                         // de
  138.                                                                         // tip
  139.                                                                         // TextNode
  140.             studentNou.appendChild(caminStudent);
  141.         }
  142.  
  143.         NodeList grupe = document.getElementsByTagName("grupa");/*
  144.                                                                  * intoarce o
  145.                                                                  * lista cu
  146.                                                                  * toate
  147.                                                                  * tagurile de
  148.                                                                  * tip "grupa"
  149.                                                                  */
  150.         int nrGrupe = grupe.getLength();
  151.         for (int i = 0; i < nrGrupe; i++) {
  152.             Element grupa = (Element) grupe.item(i);
  153.             if (grupa.getAttribute("id").equals(idGrupa)) {
  154.                 grupa.appendChild(studentNou);
  155.                 System.out.println("Adaugare efectuata");
  156.             }
  157.         }
  158.     }
  159.  
  160.     public void output(PrintWriter out) {
  161.         try {
  162.             TransformerFactory factory = TransformerFactory.newInstance();
  163.             Transformer transformer = factory.newTransformer();
  164.             transformer.transform(new DOMSource(document),
  165.                     new StreamResult(out));
  166.             /*
  167.              * linia care trebuie modificata pentru a scrie pe hard new
  168.              * StreamResult("c:\\test.xml"));
  169.              */
  170.         } catch (Exception e) {
  171.             System.out.println(e);
  172.         }
  173.     }
  174.  
  175.     public static void main(String[] args) {
  176.        
  177.         System.out.println("Nr de studenti din gupa 1024 este "
  178.                 + parser.aflaNumarStudenti("1024"));
  179.         System.out.println("Nr de studenti din gupa 10 este "
  180.                 + parser.aflaNumarStudenti("10"));
  181.         System.out.println("Nr de studenti din gupa 1023 este "
  182.                 + parser.aflaNumarStudenti("1023"));
  183.         parser.adaugaStudentNou("1024", "60", "Cretu", "Bogdan", null);
  184.         parser.output(new PrintWriter(System.out));
  185.  
  186.         parser.adaugaGrupaNoua("trei", "10");
  187.         parser.output(new PrintWriter(System.out));
  188.        
  189.         adaugaStudenti();
  190.  
  191.     }
  192.  
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement