Esempi di parser Java Dom per analizzare XML

Esempi di parser Java Dom per analizzare XML

XML è un linguaggio di markup che viene utilizzato principalmente per scambiare informazioni tra due applicazioni come database, siti Web, ecc. I tag XML sono definiti dall'utente. È più leggibile dall'uomo rispetto ad altre lingue di mark-up. Java ha molte librerie integrate per leggere i documenti XML utilizzando i parser Java XML come il parser Dom, il parser sax, ecc. I metodi di utilizzo del parser DOM per leggere i documenti XML usando Java sono mostrati in questo tutorial.

Prerequisiti:

  1. Installa l'ultima versione di OpenJDK con JRE.
  2. Installa qualsiasi editor utile per scrivere ed eseguire il codice Java. Puoi controllare questo tutorial per installare l'editor Eclipse.

Crea un file XML

Crea un file XML chiamato "Prodotti.XML "con il seguente script. L'elemento root di questo file contiene tre elementi figlio con il nome del tag, "Prodotto". Ogni tag "prodotto" ha due attributi che sono "id" e "tipo". Ogni tag "prodotto" ha tre elementi per bambini che sono "marchio", "dimensione" e "prezzo".

prodotti.XML




SAMSUNG
500 TB
70


Dell
15 "
100


SAMSUNG
medio
5


Logitech
Piccolo
10

Java Dom Parser

Il parser Modello Oggetto Documento (DOM) è uno dei modi per leggere i valori degli attributi e dei tag del documento XML in Java. I nuovi valori di nodo possono essere aggiunti, modificati o eliminati usando questo parser. Legge l'intero contenuto del documento XML e lo carica in un formato di struttura ad albero. I metodi per leggere l'intero contenuto di un "prodotti.XML ”file e la ricerca del contenuto particolare in base a un valore di attributo utilizzando un parser DOM sono mostrati nella parte successiva di questo tutorial.

Leggi un file XML utilizzando il parser DOM

Crea un file Java con il seguente codice che analizza il contenuto dei "prodotti.File XML "e stampare il contenuto di ciascun tag" Prodotto "in forma tabulare. L'oggetto Document Builder viene creato nello script per caricare il documento XML. Successivamente, ogni tipo di nodo viene verificato e i valori degli attributi di "ID" e "tipo" vengono letti utilizzando il metodo getAttribute (). Il metodo getElementsByTagname () viene utilizzato per leggere il contenuto dei tag "marchio", "dimensione" e "prezzo".

// Importa i moduli necessari
Importa Java.io.File;
Importa Javax.XML.parser.DocumentBuilderFactory;
Importa Javax.XML.parser.DocumentBuilder;
Org di importazione.W3C.Dom.Documento;
Org di importazione.W3C.Dom.Nodelist;
Org di importazione.W3C.Dom.Nodo;
Org di importazione.W3C.Dom.Elemento;
Classe pubblica JavaxMlParser
public static void main (string [] args)
Tentativo
// Crea DocumentBuilder per analizzare il contenuto del file XML
DocumentBuilderFactory Factory = DocumentBuilderFactory.newInstance ();
DocumentBuilder Builder = Factory.newDocumentBuilder ();
// Crea oggetto dal file XML per analizzare il documento XML
Document xmldoc = builder.Parse (nuovo file ("Prodotti.xml "));
// Crea oggetto per leggere il contenuto dell'elemento particolare
NODELIST ELE = XMLDOC.getElementsByTagName ("Prodotto");
// Stampa il titolo dell'output tabulare
Sistema.fuori.println ("\ nid \ ttype \ tbrand \ t \ tsize \ tprice \ n");
// Leggi tutti gli attributi e i valori degli elementi del documento XML utilizzando loop
per (int i = 0; i < ele.getLength(); i++)
// Leggi il nodo corrente
Nodo nd = ele.articolo (i);
// Controlla il tipo di nodo
if (nd.getNodeType () == nodo.Element_node)
Element Cur_Element = (Element) nd;
Sistema.fuori.Stampa (cur_element.getAttribute ("id") + "\ t");
Sistema.fuori.Stampa (cur_element.getAttribute ("type") + "\ t");
Sistema.fuori.Stampa (cur_element.getElementsByTagName ("Brand").Articolo (0).getTextContent () + "\ t \ t");
Sistema.fuori.Stampa (cur_element.getElementsByTagName ("dimensione").Articolo (0).getTextContent () + "\ t");
Sistema.fuori.Stampa ("$" + cur_element.getElementsByTagName ("Price").Articolo (0).getTextContent () + "\ t");

Sistema.fuori.println ();

catch (eccezione e)
e.printStackTrace ();


Viene visualizzato il seguente output dopo l'esecuzione del codice precedente. Gli attributi e i valori dei tag del documento XML sono stampati in forma tabulare. Il tag root del documento XML contiene tre tag "Prodotti". Quindi, tre righe di valori sono stampate nell'output:

Cerca in un file XML utilizzando il parser DOM

Crea un file Java con il seguente codice che cerca il contenuto del tag particolare dei "prodotti.File XML "in base a un valore dell'attributo. Il contenuto del tag viene stampato se viene trovata una corrispondenza. Viene stampato un messaggio di errore se non viene trovata alcuna corrispondenza.

// Importa i moduli necessari
Importa Java.io.File;
Importa Javax.XML.parser.DocumentBuilderFactory;
Importa Javax.XML.parser.DocumentBuilder;
Org di importazione.W3C.Dom.Documento;
Org di importazione.W3C.Dom.Nodelist;
Org di importazione.W3C.Dom.Nodo;
Org di importazione.W3C.Dom.Elemento;
Importa Java.io.*;
Classe pubblica JavaxMlParser2
public static void main (string [] args)
Tentativo
// Crea DocumentBuilder per analizzare il contenuto del file XML
DocumentBuilderFactory Factory = DocumentBuilderFactory.newInstance ();
DocumentBuilder Builder = Factory.newDocumentBuilder ();
// Crea oggetto dal file XML per analizzare il documento XML
Document xmldoc = builder.Parse (nuovo file ("Prodotti.xml "));
// Crea oggetto per leggere il contenuto dell'elemento particolare
NODELIST ELE = XMLDOC.getElementsByTagName ("Prodotto");
// Crea oggetto per prendere il valore ID che verrà cercato
BufferedReader buf = new BufferedReader (New InputStreamReader (Sistema.In));
Sistema.fuori.print ("Immettere l'ID prodotto:");
String Search = buf.linea di lettura();
// Imposta il valore predefinito
booleano trovato = false;
// Leggi tutti gli attributi e i valori degli elementi del documento XML utilizzando loop
per (int i = 0; i < ele.getLength(); i++)
// Leggi il nodo corrente
Nodo nd = ele.articolo (i);
// Controlla il tipo di nodo
if (nd.getNodeType () == nodo.Element_node)
Element Cur_Element = (Element) nd;
String Val = (String) Cur_Element.getAttribute ("id");
// Controllare che l'ID di ricerca esista o no
if (val.uguali (ricerca))

Sistema.fuori.println ("id:" + cur_element.getAttribute ("id") + "\ t");
Sistema.fuori.println ("type:" + cur_element.getAttribute ("type") + "\ t");
Sistema.fuori.println ("marchio:" + cur_element.getElementsByTagName ("Brand").Articolo (0).getTextContent () + "\ t \ t");
Sistema.fuori.println ("prezzo: $" + cur_element.getElementsByTagName ("Price").Articolo (0).getTextContent () + "\ t");
trovato = vero;
rottura;



if (trovato == false)
Sistema.fuori.println ("Id non esiste.");
catch (eccezione e)
e.printStackTrace ();


Viene visualizzato il seguente output dopo l'esecuzione del codice precedente. Secondo l'output, l'ID prodotto di P-002 esiste nel file XML. Quindi, il contenuto del tag che contiene questo ID è stampato.

Conclusione

Gli usi del parser java dom per leggere il contenuto di un semplice file XML in diversi modi sono mostrati in questo tutorial usando due esempi. Molti altri parser sono disponibili in Java per leggere o modificare i documenti XML.