Curso finalizado, tercera parte aƱadida (DOM & SAX)
[curso-xml.git] / domsax / cursoxml / src / ejercicio3.java
1 import java.io.FileNotFoundException;
2 import java.io.IOException;
3
4 import javax.xml.parsers.DocumentBuilder;
5 import javax.xml.parsers.DocumentBuilderFactory;
6 import javax.xml.parsers.ParserConfigurationException;
7
8 import org.w3c.dom.Element;
9 import org.w3c.dom.Node;
10 import org.w3c.dom.NodeList;
11 import org.w3c.dom.Document;
12 import org.xml.sax.SAXException;
13
14
15 public class ejercicio3 {
16         public static void main(String[] args) {
17                 // Construimos nuestro DocumentBuilder
18                 DocumentBuilder documentBuilder = null;
19                 Document doc = null;
20                 try {
21                         documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
22                 } catch (ParserConfigurationException e) {
23                         e.printStackTrace();
24                 }
25                 
26                 // Procesamos el fichero XML y obtenemos nuestro objeto Document
27                 try {
28                         doc = documentBuilder.parse("src/catalogo.xml");
29                 } catch (FileNotFoundException e) {
30                         e.printStackTrace();
31                 } catch (IOException e) {
32                         e.printStackTrace();
33                 } catch (SAXException e) {
34                         e.printStackTrace();
35                 }
36                 // Obtenemos la etiqueta raiz
37                 Element elementRaiz = doc.getDocumentElement();
38                 // Iteramos sobre sus hijos
39                 NodeList hijos = elementRaiz.getChildNodes();
40                 for(int i=0;i<hijos.getLength();i++){
41                    Node nodo = hijos.item(i);
42                    if (nodo instanceof Element){
43                            Element e = (Element) nodo;
44                            if (e.getTagName().equals("cd")){
45                                    Node paisNode = e.getElementsByTagName("pais").item(0);
46                                    String pais = paisNode.getFirstChild().getNodeValue();
47                                    Node artistaNode = e.getElementsByTagName("artista").item(0);
48                                    Node tituloNode = e.getElementsByTagName("titulo").item(0);
49                                    String titulo = tituloNode.getFirstChild().getNodeValue();
50                                    String artista = artistaNode.getFirstChild().getNodeValue();
51                                    if (pais.equals("USA"))
52                                            System.out.println("titulo: " + titulo + " | artista: " + artista);
53                            }
54                    }
55                 }
56
57         }
58 }