XML er et markeringsspråk som hovedsakelig brukes til å utveksle informasjon mellom to applikasjoner som databaser, nettsteder osv. XML -kodene er definert av brukeren. Det er mer menneskelig lesbart enn andre påslagsspråk. Java har mange innebygde biblioteker for å lese XML-dokumentene ved hjelp av Java XML-analysere som DOM-parser, Sax Parser, etc. Metodene for å bruke DOM -parseren for å lese XML -dokumentene ved hjelp av Java vises i denne opplæringen.
Forutsetninger:
- Installer den siste versjonen av OpenJDK med JRE.
- Installer enhver nyttig redigerer for å skrive og utføre Java -koden. Du kan sjekke denne opplæringen for å installere Eclipse Editor.
Opprett en XML -fil
Lag en XML -fil som heter “Produkter.XML ”med følgende skript. Rotelementet i denne filen inneholder tre barneelementer med tagnavnet, “Produkt”. Hver "produkt" -kode har to attributter som er "id" og "type". Hver "produkt" -kode har tre barneelementer som er "merke", "størrelse" og "pris".
Produkter.XML
Samsung
500 TB
70
Dell
15 "
100
Samsung
Medium
5
Logitech
Liten
10
Java Dom -parser
Document Object Model (DOM) Parser er en av måtene å lese attributt- og tagverdiene til XML -dokumentet i Java. De nye nodeverdiene kan legges til, endres eller slettes ved hjelp av denne analyseren. Den leser hele innholdet i XML -dokumentet og laster det i et trestrukturformat. Metodene for å lese hele innholdet i et “Produkter.XML ”-filen og søk i det aktuelle innholdet basert på en attributtverdi ved hjelp av en DOM -parser vises i neste del av denne opplæringen.
Les en XML -fil ved hjelp av DOM -parseren
Lag en Java -fil med følgende kode som analyserer innholdet i “Produktene.XML ”-filen og skriv ut innholdet i hvert" produkt "-merke i tabellform. Document Builder -objektet er opprettet i skriptet for å laste inn XML -dokumentet. Deretter blir hver node -type sjekket og attributtverdiene til "ID" og "Type" leses ved hjelp av getAttribute () -metoden. Metoden getElementsbyTagName () brukes til å lese innholdet i "merket", "størrelse" og "pris" -koder.
// importere nødvendige moduler
Importer Java.io.Fil;
Importer Javax.XML.analysere.DocumentBuilderFactory;
Importer Javax.XML.analysere.DocumentBuilder;
Import org.W3C.dom.Dokument;
Import org.W3C.dom.Nodelist;
Import org.W3C.dom.Node;
Import org.W3C.dom.Element;
offentlig klasse JavaxMlParser
public static void main (String [] args)
prøv
// Opprett dokumentbygger for å analysere innholdet i XML -filen
DocumentBuilderFactory Factory = DocumentBuilderFactory.newInstance ();
DocumentBuilder Builder = Factory.newdocumentBuilder ();
// Opprett objekt fra XML -fil til analyser XML -dokument
Dokument xmldoc = byggherre.analyser (ny fil ("Produkter.xml "));
// Lag objekt for å lese innholdet i det aktuelle elementet
Nodelist ele = xmldoc.getElementsByTagName ("Produkt");
// Skriv ut tittelen på tabellutgangen
System.ute.println ("\ nid \ ttype \ tbrand \ t \ tsize \ tprice \ n");
// Les alle attributter og elementverdier i XML -dokumentet ved å bruke loop
for (int i = 0; i < ele.getLength(); i++)
// Les gjeldende node
Node nd = ele.vare (i);
// sjekk nodetypen
hvis (nd.getNodeType () == node.Element_node)
Element cur_element = (element) nd;
System.ute.Print (Cur_Element.getAttribute ("id") + "\ t");
System.ute.Print (Cur_Element.getAttribute ("type") + "\ t");
System.ute.Print (Cur_Element.getElementsByTagName ("Brand").vare (0).getTextContent () + "\ t \ t");
System.ute.Print (Cur_Element.getElementsByTagName ("Størrelse").vare (0).getTextContent () + "\ t");
System.ute.trykk ("$" + cur_element.getElementsByTagName ("Pris").vare (0).getTextContent () + "\ t");
System.ute.println ();
fangst (unntak e)
e.printStackTrace ();
Følgende utgang vises etter å ha utført forrige kode. Attributtene og tagverdiene til XML -dokumentet skrives ut i tabellform. Rottaggen til XML -dokumentet inneholder tre “produkt” -koder. Så tre rader med verdier skrives ut i utgangen:
Søk i en XML -fil ved hjelp av DOM -parseren
Lag en Java -fil med følgende kode som søker i innholdet i den spesielle taggen til “Produktene.XML ”-fil basert på en attributtverdi. Innholdet i taggen skrives ut hvis noen kamp blir funnet. En feilmelding skrives ut hvis ingen samsvar blir funnet.
// importere nødvendige moduler
Importer Java.io.Fil;
Importer Javax.XML.analysere.DocumentBuilderFactory;
Importer Javax.XML.analysere.DocumentBuilder;
Import org.W3C.dom.Dokument;
Import org.W3C.dom.Nodelist;
Import org.W3C.dom.Node;
Import org.W3C.dom.Element;
Importer Java.io.*;
offentlig klasse javaxmlParser2
public static void main (String [] args)
prøv
// Opprett dokumentbygger for å analysere innholdet i XML -filen
DocumentBuilderFactory Factory = DocumentBuilderFactory.newInstance ();
DocumentBuilder Builder = Factory.newdocumentBuilder ();
// Opprett objekt fra XML -fil til analyser XML -dokument
Dokument xmldoc = byggherre.analyser (ny fil ("Produkter.xml "));
// Lag objekt for å lese innholdet i det aktuelle elementet
Nodelist ele = xmldoc.getElementsByTagName ("Produkt");
// Lag objekt for å ta ID -verdi som vil bli søkt på
BufferedReader BUF = ny BufferedReader (ny InputStreamReader (System.i));
System.ute.print ("Skriv inn produkt -id:");
Strengsøk = buf.readline ();
// angi standardverdi
boolsk funnet = falsk;
// Les alle attributter og elementverdier i XML -dokumentet ved å bruke loop
for (int i = 0; i < ele.getLength(); i++)
// Les gjeldende node
Node nd = ele.vare (i);
// sjekk nodetypen
hvis (nd.getNodeType () == node.Element_node)
Element cur_element = (element) nd;
String val = (streng) cur_element.getAttribute ("id");
// Sjekk søke -IDen eksisterer eller ikke
hvis (val.lik (søk))
System.ute.Println ("ID:" + Cur_Element.getAttribute ("id") + "\ t");
System.ute.Println ("Type:" + Cur_Element.getAttribute ("type") + "\ t");
System.ute.Println ("Merke:" + Cur_Element.getElementsByTagName ("Brand").vare (0).getTextContent () + "\ t \ t");
System.ute.Println ("Pris: $" + Cur_Element.getElementsByTagName ("Pris").vare (0).getTextContent () + "\ t");
funnet = sant;
gå i stykker;
if (funnet == falsk)
System.ute.Println ("ID eksisterer ikke.");
fangst (unntak e)
e.printStackTrace ();
Følgende utgang vises etter å ha utført forrige kode. I henhold til utdataene eksisterer produkt-IDen til P-002 i XML-filen. Så innholdet i taggen som inneholder denne IDen skrives ut.
Konklusjon
Bruken av Java Dom -parseren for å lese innholdet i en enkel XML -fil på forskjellige måter vises i denne opplæringen ved å bruke to eksempler. Mange andre analysere er tilgjengelige i Java for å lese eller endre XML -dokumentene.