Beispiele für Java Dom Parser, um XML zu analysieren

Beispiele für Java Dom Parser, um XML zu analysieren

XML ist eine Markup -Sprache, die hauptsächlich zum Austausch von Informationen zwischen zwei Anwendungen wie Datenbanken, Websites usw. verwendet wird. Die XML -Tags werden vom Benutzer definiert. Es ist mehr menschlicher lesbarer als andere Aufschlagsprachen. Java verfügt über viele integrierte Bibliotheken, um die XML-Dokumente mit Java XML-Parser wie Dom Parser, Sax Parser usw. zu lesen. Die Methoden zur Verwendung des DOM -Parsers zum Lesen der XML -Dokumente mit Java sind in diesem Tutorial angezeigt.

Voraussetzungen:

  1. Installieren Sie die neueste Version von OpenJDK mit JRE.
  2. Installieren Sie einen nützlichen Editor, um den Java -Code zu schreiben und auszuführen. Sie können dieses Tutorial überprüfen, um den Eclipse -Editor zu installieren.

Erstellen Sie eine XML -Datei

Erstellen Sie eine XML -Datei mit dem Namen „Produkte.XML ”mit dem folgenden Skript. Das Stammelement dieser Datei enthält drei untergeordnete Elemente mit dem Tag -Namen „Produkt“. Jedes "Produkt" -Tag verfügt über zwei Attribute, die "ID" und "Typ" sind. Jedes „Produkt“ -Tag verfügt über drei Kinderelemente, die „Marke“, „Größe“ und „Preis“ sind.

Produkte.xml




Samsung
500 TB
70


Dell
15"
100


Samsung
Mittel
5


Logitech
Klein
10

Java Dom Parser

Der DOM -Parser des Dokumentobjektmodells (DOM) ist eine der Möglichkeiten, die Attribut- und Tag -Werte des XML -Dokuments in Java zu lesen. Die neuen Knotenwerte können mit diesem Parser hinzugefügt, geändert oder gelöscht werden. Es liest den gesamten Inhalt des XML -Dokuments und lädt es in einem Baumstrukturformat. Die Methoden zum Lesen des gesamten Inhalts einer „Produkte.XML ”-Datei und das Durchsuchen des jeweiligen Inhalts basierend auf einem Attributwert mit einem DOM -Parser werden im nächsten Teil dieses Tutorials angezeigt.

Lesen Sie eine XML -Datei mit dem DOM -Parser

Erstellen Sie eine Java -Datei mit dem folgenden Code, der den Inhalt der „Produkte“ analysiert.XML ”-Datei und drucken Sie den Inhalt jedes„ Produkt “-Tags in tabellarischer Form aus. Das Dokument Builder -Objekt wird im Skript erstellt, um das XML -Dokument zu laden. Als nächstes wird jeder Knotentyp überprüft und die Attributwerte von „ID“ und „Typ“ werden unter Verwendung der Methode GetAttribute () gelesen. Die GetElementsByTagName () -Methode wird verwendet, um den Inhalt der Tags „Marke“, „Größe“ und „Preis“ zu lesen.

// notwendige Module importieren
Java importieren.io.Datei;
Javax importieren.xml.Parser.DocumentBuilderFactory;
Javax importieren.xml.Parser.DocumentBuilder;
import org.W3c.Dom.Dokumentieren;
import org.W3c.Dom.Nodelist;
import org.W3c.Dom.Knoten;
import org.W3c.Dom.Element;
öffentliche Klasse JavaxmlParser
public static void main (String [] args)
versuchen
// Dokumentbuilder erstellen, um den Inhalt der XML -Datei zu analysieren
DocumentBuilderFactory Factory = DocumentBuilderFactory.NewInstance ();
DocumentBuilder Builder = Fabrik.newdocumentBuilder ();
// Objekt aus der XML -Datei erstellen, um das XML -Dokument zu analysieren
Dokument xmldoc = Builder.analysieren (neue Datei ("Produkte.xml "));
// Objekt erstellen, um den Inhalt des jeweiligen Elements zu lesen
Nodelist ele = xmldoc.GetElementsByTagName ("Produkt");
// Drucken Sie den Titel der tabellarischen Ausgabe aus
System.aus.println ("\ nid \ type \ tbrand \ t \ tsize \ tPrice \ n");
// Lesen Sie alle Attribute und Elementwerte des XML -Dokuments mithilfe der Schleife durch
für (int i = 0; i < ele.getLength(); i++)
// Lesen Sie den aktuellen Knoten
Knoten nd = ele.Punkt (i);
// Überprüfen Sie den Knotentyp
if (nd.getNoDeType () == Knoten.Element_node)
Element cur_element = (Element) nd;
System.aus.print (cur_element.getAtTribute ("id") + "\ t");
System.aus.print (cur_element.getAtTribute ("Typ") + "\ t");
System.aus.print (cur_element.GetElementsByTagName ("Marke").Artikel (0).getTextContent () + "\ t \ t");
System.aus.print (cur_element.GetElementsByTagName ("Größe").Artikel (0).getTextContent () + "\ t");
System.aus.print ("$" + cur_element.GetElementsByTagName ("Preis").Artikel (0).getTextContent () + "\ t");

System.aus.println ();

catch (Ausnahme e)
e.printStacktrace ();


Die folgende Ausgabe erscheint nach der Ausführung des vorherigen Code. Die Attribute und Tag -Werte des XML -Dokuments werden in tabellarischer Form gedruckt. Das Root -Tag des XML -Dokuments enthält drei "Produkt" -Tags. Daher werden in der Ausgabe drei Wertereihen gedruckt:

Suchen Sie in einer XML -Datei mit dem DOM -Parser

Erstellen Sie eine Java -Datei mit dem folgenden Code, der den Inhalt des jeweiligen Tags der „Produkte“ durchsucht.XML ”-Datei basierend auf einem Attributwert basiert. Der Inhalt des Tags wird gedruckt, wenn eine Übereinstimmung gefunden wird. Eine Fehlermeldung wird gedruckt, wenn keine Übereinstimmung gefunden wird.

// notwendige Module importieren
Java importieren.io.Datei;
Javax importieren.xml.Parser.DocumentBuilderFactory;
Javax importieren.xml.Parser.DocumentBuilder;
import org.W3c.Dom.Dokumentieren;
import org.W3c.Dom.Nodelist;
import org.W3c.Dom.Knoten;
import org.W3c.Dom.Element;
Java importieren.io.*;
öffentliche Klasse JavaxmlParser2
public static void main (String [] args)
versuchen
// Dokumentbuilder erstellen, um den Inhalt der XML -Datei zu analysieren
DocumentBuilderFactory Factory = DocumentBuilderFactory.NewInstance ();
DocumentBuilder Builder = Fabrik.newdocumentBuilder ();
// Objekt aus der XML -Datei erstellen, um das XML -Dokument zu analysieren
Dokument xmldoc = Builder.analysieren (neue Datei ("Produkte.xml "));
// Objekt erstellen, um den Inhalt des jeweiligen Elements zu lesen
Nodelist ele = xmldoc.GetElementsByTagName ("Produkt");
// Objekt erstellen, um den ID -Wert zu nutzen, der durchsucht wird
BufferedReader BUF = New BufferedReader (New InputStreamReader (System ".In));
System.aus.print ("die Produkt -ID eingeben:");
String Search = BUF.Zeile lesen();
// Standardwert festlegen
boolean found = false;
// Lesen Sie alle Attribute und Elementwerte des XML -Dokuments mithilfe der Schleife durch
für (int i = 0; i < ele.getLength(); i++)
// Lesen Sie den aktuellen Knoten
Knoten nd = ele.Punkt (i);
// Überprüfen Sie den Knotentyp
if (nd.getNoDeType () == Knoten.Element_node)
Element cur_element = (Element) nd;
String val = (String) cur_element.getAttribute ("id");
// Überprüfen Sie, ob die Such -ID existiert oder nicht
if (val.gleich (Suche))

System.aus.println ("id:" + cur_element.getAtTribute ("id") + "\ t");
System.aus.println ("Typ:" + cur_element.getAtTribute ("Typ") + "\ t");
System.aus.println ("Marke:" + cur_element.GetElementsByTagName ("Marke").Artikel (0).getTextContent () + "\ t \ t");
System.aus.println ("Preis: $" + cur_element.GetElementsByTagName ("Preis").Artikel (0).getTextContent () + "\ t");
gefunden = wahr;
brechen;



if (gefunden == false)
System.aus.println ("id existiert nicht.");
catch (Ausnahme e)
e.printStacktrace ();


Die folgende Ausgabe erscheint nach der Ausführung des vorherigen Code. Gemäß der Ausgabe existiert die Produkt-ID von P-002 in der XML-Datei. Der Inhalt des Tags, der diese ID enthält, wird also gedruckt.

Abschluss

Die Verwendung des Java Dom -Parsers zum Lesen des Inhalts einer einfachen XML -Datei auf unterschiedliche Weise wird in diesem Tutorial anhand von zwei Beispielen angezeigt. Viele andere Parser sind in Java verfügbar, um die XML -Dokumente zu lesen oder zu ändern.