bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


java_lectura_escriptura_xml

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
java_lectura_escriptura_xml [2022/11/24 16:40]
albert_palacios_jimenez
java_lectura_escriptura_xml [2022/11/24 16:49] (actual)
albert_palacios_jimenez
Línia 8: Línia 8:
 ==== Arxius XML en Java ==== ==== Arxius XML en Java ====
  
-En Java, els arxius XML poden tenir un tractament especial, per tal de poder accedir directament a les dades que contenen a través del seu arbre. +En Java, els arxius XML poden tenir un tractament especial, per tal de poder accedir directament a les dades que contenen a través del seu arbre. Els exemples d'aquest document fan referència a un XML tipus:
  
-Per llegir arxius XML fem servir "DocumentBuilderFactory", per obtenir el "Document" amb les dades, per exemple: 
- 
-<code java> 
-       try { 
-           DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
-           DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
-           Document doc = dBuilder.parse(file); 
-           doc.getDocumentElement().normalize(); 
-           NodeList listStudents = doc.getElementsByTagName("student"); 
-           System.out.println("Número d'estudiants: " + listStudents.getLength()); 
-       }} catch(Exception e) { e.printStackTrace(); } 
-</code> 
  
 <code xml> <code xml>
Línia 57: Línia 45:
 </root> </root>
 </code> </code>
 +
 +
 +Per llegir arxius XML fem servir "DocumentBuilderFactory", per obtenir el "Document" amb les dades, per exemple:
 +
 +<code java>
 +       try {
 +           DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
 +           DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
 +           Document doc = dBuilder.parse(file);
 +           doc.getDocumentElement().normalize();
 +           NodeList listStudents = doc.getElementsByTagName("student");
 +           System.out.println("Número d'estudiants: " + listStudents.getLength());
 +       }} catch(Exception e) { e.printStackTrace(); }
 +</code>
 +
 +Hi ha diferents maneres d'accedir a la informació dels Elements XML, una d'elles és amb "**.getElementsByTagName**", que ens retorna la llista d'elements amb aquest nom d'element (a l'exemple "student")
 +
 +El valor dels atributs d’un element es pot llegir amb “.**getAttribute**”
  
 En aquest exemple es veu com es poden llegir els atributs i continguts dels elements d'un arxiu XML: En aquest exemple es veu com es poden llegir els atributs i continguts dels elements d'un arxiu XML:
Línia 72: Línia 78:
 </code> </code>
  
-Cal fixar-se que es comprova que els elements siguin de tipus "ELEMENT_NODE" i no de text, per tal de poder fer el "**cast**" cap a "Element"+Cal fixar-se que també es poden agafar elements a partir de la seva posició amb "**.item**"si els elements tenen contingut de text, aquest es pot obtenir amb "**.getTextContent**"
  
-Aleshores ja es poden llegir els atributs o els altres elements que tingui dins.+També cal tenir en compte que es comprova que els elements siguin de tipus "ELEMENT_NODE" i no de text, per tal de poder fer el "**cast**" cap a "Element" 
 + 
 +Així ja es poden llegir els atributs o els altres elements que tingui dins ...
  
 == XPath == == XPath ==
  
 Per poder accedir més fàcilment als elements de l'arbre XML, es pot fer servir XPath Per poder accedir més fàcilment als elements de l'arbre XML, es pot fer servir XPath
 +
 +Amb XPath es defineix el filtre dels elements que es volen obtenir en forma d'expressió, i desrprés s'avalua aquesta expressió per obtenir la llista en qüestió.
  
 <code java> <code java>
Línia 99: Línia 109:
  
 == Generar un arbre XML amb elements i atributs == == Generar un arbre XML amb elements i atributs ==
 +
 +Per generar un arbre XML i definir quins elements té, o bé quins atributs tenen aquests elements hi ha les funcions:
 +
 +- .**createElement**, crea un node de tipus element
 +
 +- .**createTextNode**, crea un node de tipus text
 +
 +- .**appendChild**, afegeix un element fill a un altre element
 +
 +- **setAttributeNode**, afegeix un atribut (i el seu valor) a un element
 +
  
 Aquest exemple mostra com es pot generar un arbre XML amb elements i atributs: Aquest exemple mostra com es pot generar un arbre XML amb elements i atributs:
Línia 121: Línia 142:
  
 Finalment, per escriure un arbre XML com l'anterior en un arxiu: Finalment, per escriure un arbre XML com l'anterior en un arxiu:
- 
- 
  
 <code java> <code java>
java_lectura_escriptura_xml.1669308028.txt.gz · Darrera modificació: 2022/11/24 16:40 per albert_palacios_jimenez