


Java&Xml-Tutorial (6) Verwenden von JDOM zum Parsen von XML-Dateien
JDOM bietet eine hervorragende Java-XML-API zum bequemeren Lesen, Ändern und Generieren von XML-Dokumenten. JDOM bietet außerdem Wrapper-Klassen, mit denen Benutzer bestimmte Implementierungen aus SAX, DOM, STAX-Ereignisanalyse und STAX-Stream-Analyse auswählen können.
In diesem Tutorial lernen wir, JDOM zu verwenden, um XML-Dateiinformationen zu lesen und sie in Java-Objekte zu konvertieren.
JDOM ist nicht Teil des Standard-JDK. Um JDOM verwenden zu können, müssen Sie das JDOM-Binärpaket von der offiziellen Website herunterladen. Fügen Sie nach dem Herunterladen das JDOM-Jar-Paket zum Klassenpfad des Projekts hinzu.
JDOM stellt eine Wrapper-Klasse zur Verfügung, mit der wir die zugrunde liegende XML-Parsing-API auswählen können. Sie stellt vier wichtige Klassen bereit, die wir zum Abrufen des JDOM-Dokumentobjekts verwenden können. Das JDOM-Dokumentobjekt bietet sehr nützliche Methoden zum Abrufen des Stammelements, der Liste der untergeordneten Elemente, Attributwerte usw.
Wichtige Klassen von JDOM: org.jdom2.input.DOMBuilder:
Verwenden Sie den DOM-Parsing-Mechanismus, um XML zu analysieren und in ein JDOM-Dokumentobjekt zu konvertieren. org.jdom2.input.SAXBuilder:
Verwenden Sie den SAX-Parsing-Mechanismus, um XML zu analysieren und in ein JDOM-Dokument zu konvertieren. Die Funktionen von org.jdom2.input.StAXEventBuilder
und org.jdom2.input.StAXStreamBuilder
ähneln den beiden vorherigen und werden nicht noch einmal beschrieben. org.jdom2.Document
Das JDOM-Dokumentobjekt bietet nützliche Methoden zum Abrufen des Stammelements, zum Lesen oder Ändern des Elementinhalts usw. Wir werden es verwenden, um das Stammelement von XML abzurufen. org.jdom2.Document
bietet nützliche Methoden zum Abrufen der Sammlung untergeordneter Elemente, zum Abrufen des Werts des untergeordneten Elements, zum Abrufen des Attributwerts und für andere Vorgänge.
Als nächstes beginnen wir mit dem Case-Programm, um die XML-Datei zu lesen und Java-Objekte zu generieren.
employees.xml
<?xml version="1.0" encoding="UTF-8"?><Employees> <Employee id="1"> <age>29</age> <name>Pankaj</name> <gender>Male</gender> <role>Java Developer</role> </Employee> <Employee id="2"> <age>35</age> <name>Lisa</name> <gender>Female</gender> <role>CEO</role> </Employee> <Employee id="3"> <age>40</age> <name>Tom</name> <gender>Male</gender> <role>Manager</role> </Employee></Employees>
Diese XML-Datei speichert Mitarbeiterinformationen. Wir verwenden die Employee-Klasse, um Mitarbeiter darzustellen.
package com.journaldev.xml;public class Employee { private int id; private String name; private String gender; private int age; private String role; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getRole() { return role; } public void setRole(String role) { this.role = role; } @Override public String toString() { return "Employee:: ID="+this.id+" Name=" + this.name + " Age=" + this.age + " Gender=" + this.gender + " Role=" + this.role; } }
Verwenden Sie dann DOMBuilder im Testprogramm, um die XML-Datei zu lesen und eine Sammlung von Employee-Objekten zu generieren.
JDOMXMLReader.java
package com.journaldev.xml.jdom; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.stream.XMLEventReader; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import org.jdom2.Element; import org.jdom2.JDOMException; import org.jdom2.input.DOMBuilder; import org.jdom2.input.SAXBuilder; import org.jdom2.input.StAXEventBuilder; import org.jdom2.input.StAXStreamBuilder; import org.w3c.dom.Document; import org.xml.sax.SAXException; import com.journaldev.xml.Employee; public class JDOMXMLReader { public static void main(String[] args) { final String fileName = "/Users/pankaj/employees.xml"; org.jdom2.Document jdomDoc; try { //we can create JDOM Document from DOM, SAX and STAX Parser Builder classes jdomDoc = useDOMParser(fileName); Element root = jdomDoc.getRootElement(); List<Element> empListElements = root.getChildren("Employee"); List<Employee> empList = new ArrayList<>(); for (Element empElement : empListElements) { Employee emp = new Employee(); emp.setId(Integer.parseInt(empElement.getAttributeValue("id"))); emp.setAge(Integer.parseInt(empElement.getChildText("age"))); emp.setName(empElement.getChildText("name")); emp.setRole(empElement.getChildText("role")); emp.setGender(empElement.getChildText("gender")); empList.add(emp); } //lets print Employees list information for (Employee emp : empList) System.out.println(emp); } catch (Exception e) { e.printStackTrace(); } } //Get JDOM document from DOM Parser private static org.jdom2.Document useDOMParser(String fileName) throws ParserConfigurationException, SAXException, IOException { //creating DOM Document DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder; dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(new File(fileName)); DOMBuilder domBuilder = new DOMBuilder(); return domBuilder.build(doc); } }
Wie Sie sehen können, verwende ich hier die DOM-Parsing-Wrapper-Klasse, um das JDOM-Dokumentobjekt abzurufen.
Führen Sie die Programmausgabe aus:
Employee:: ID=1 Name=Pankaj Age=29 Gender=Male Role=Java DeveloperEmployee:: ID=2 Name=Lisa Age=35 Gender=Female Role=CEOEmployee:: ID=3 Name=Tom Age=40 Gender=Male Role=Manager
Wir können auch die SAX- und STAX-Parsing-Mechanismen verwenden, um den Vorgang abzuschließen Das Programm erhält dasselbe. Die Ausgabe liegt daran, dass wir nur unterschiedliche Wrapper-Klassen verwenden, aber die erhaltenen JDOM-Dokumentobjekte sind dieselben.
Der Vorteil der Verwendung von JDOM besteht darin, dass wir den zugrunde liegenden Analysemechanismus problemlos wechseln können, ohne den Verarbeitungscode zu ändern./Get JDOM document from SAX Parserprivate static org.jdom2.Document useSAXParser(String fileName) throws JDOMException, IOException { SAXBuilder saxBuilder = new SAXBuilder(); return saxBuilder.build(new File(fileName)); } //Get JDOM Document from STAX Stream Parser or STAX Event Parserprivate static org.jdom2. Document useSTAXParser(String fileName, String type) throws FileNotFoundException, XMLStreamException, JDOMException{ if(type.equalsIgnoreCase("stream")){ StAXStreamBuilder staxBuilder = new StAXStreamBuilder(); XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(new FileInputStream(fileName)); return staxBuilder.build(xmlStreamReader); } StAXEventBuilder staxBuilder = new StAXEventBuilder(); XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); XMLEventReader xmlEventReader = xmlInputFactory.createXMLEventReader(new FileInputStream(fileName)); return staxBuilder.build(xmlEventReader); }
JDOM bietet eine hervorragende Java-XML-API zum bequemeren Lesen, Ändern und Generieren von XML-Dokumenten. JDOM bietet außerdem Wrapper-Klassen, mit denen Benutzer bestimmte Implementierungen aus SAX, DOM, STAX-Ereignisanalyse und STAX-Stream-Analyse auswählen können.
In diesem Tutorial lernen wir, JDOM zum Lesen von XML-Dateiinformationen und zum Konvertieren in Java-Objekte zu verwenden.
JDOM stellt eine Wrapper-Klasse zur Verfügung, mit der wir die zugrunde liegende XML-Parsing-API auswählen können. Sie stellt vier wichtige Klassen bereit, die wir zum Abrufen des JDOM-Dokumentobjekts verwenden können. Das JDOM-Dokumentobjekt bietet sehr nützliche Methoden zum Abrufen des Stammelements, der Liste der untergeordneten Elemente, Attributwerte usw.
Wichtige Klassen von JDOM:
Verwenden Sie den DOM-Parsing-Mechanismus, um XML zu analysieren und in ein JDOM-Dokumentobjekt zu konvertieren.
Verwenden Sie den SAX-Parsing-Mechanismus, um XML zu analysieren und in ein JDOM-Dokument zu konvertieren. Die Funktionen von org.jdom2.input.DOMBuilder:
und org.jdom2.input.SAXBuilder:
ähneln den beiden vorherigen und werden nicht noch einmal beschrieben. org.jdom2.input.StAXEventBuilder
Das JDOM-Dokumentobjekt bietet nützliche Methoden zum Abrufen des Stammelements, zum Lesen oder Ändern des Elementinhalts usw. Wir werden es verwenden, um das Stammelement von XML abzurufen. org.jdom2.input.StAXStreamBuilder
bietet nützliche Methoden zum Abrufen der Sammlung untergeordneter Elemente, zum Abrufen des Werts des untergeordneten Elements, zum Abrufen des Attributwerts und für andere Vorgänge. org.jdom2.Document
Als nächstes beginnen wir mit dem Case-Programm, um die XML-Datei zu lesen und Java-Objekte zu generieren.
employees.xmlorg.jdom2.Document
Diese XML-Datei speichert Mitarbeiterinformationen. Wir verwenden die Employee-Klasse, um Mitarbeiter darzustellen.
<?xml version="1.0" encoding="UTF-8"?><Employees> <Employee id="1"> <age>29</age> <name>Pankaj</name> <gender>Male</gender> <role>Java Developer</role> </Employee> <Employee id="2"> <age>35</age> <name>Lisa</name> <gender>Female</gender> <role>CEO</role> </Employee> <Employee id="3"> <age>40</age> <name>Tom</name> <gender>Male</gender> <role>Manager</role> </Employee></Employees>
Verwenden Sie dann DOMBuilder im Testprogramm, um die XML-Datei zu lesen und eine Sammlung von Employee-Objekten zu generieren.
JDOMXMLReader.javapackage com.journaldev.xml; public class Employee { private int id; private String name; private String gender; private int age; private String role; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getRole() { return role; } public void setRole(String role) { this.role = role; } @Override public String toString() { return "Employee:: ID="+this.id+" Name=" + this.name + " Age=" + this.age + " Gender=" + this.gender + " Role=" + this.role; } }
Wie Sie sehen können, verwende ich hier die DOM-Parsing-Wrapper-Klasse, um das JDOM-Dokumentobjekt abzurufen.
package com.journaldev.xml.jdom; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException;import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.stream.XMLEventReader; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import org.jdom2.Element;import org.jdom2.JDOMException; import org.jdom2.input.DOMBuilder; import org.jdom2.input.SAXBuilder; import org.jdom2.input.StAXEventBuilder; import org.jdom2.input.StAXStreamBuilder; import org.w3c.dom.Document; import org.xml.sax.SAXException; import com.journaldev.xml.Employee; public class JDOMXMLReader { public static void main(String[] args) { final String fileName = "/Users/pankaj/employees.xml"; org.jdom2.Document jdomDoc; try { //we can create JDOM Document from DOM, SAX and STAX Parser Builder classes jdomDoc = useDOMParser(fileName); Element root = jdomDoc.getRootElement(); List<Element> empListElements = root.getChildren("Employee"); List<Employee> empList = new ArrayList<>(); for (Element empElement : empListElements) { Employee emp = new Employee(); emp.setId(Integer.parseInt(empElement.getAttributeValue("id"))); emp.setAge(Integer.parseInt(empElement.getChildText("age"))); emp.setName(empElement.getChildText("name")); emp.setRole(empElement.getChildText("role")); emp.setGender(empElement.getChildText("gender")); empList.add(emp); } //lets print Employees list information for (Employee emp : empList) System.out.println(emp); } catch (Exception e) { e.printStackTrace(); } } //Get JDOM document from DOM Parser private static org.jdom2.Document useDOMParser(String fileName) throws ParserConfigurationException, SAXException, IOException { //creating DOM Document DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder; dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(new File(fileName)); DOMBuilder domBuilder = new DOMBuilder(); return domBuilder.build(doc); } }
Wir können auch die SAX- und STAX-Parsing-Mechanismen verwenden, um den Vorgang abzuschließen Das Programm erhält dasselbe. Die Ausgabe liegt daran, dass wir nur unterschiedliche Wrapper-Klassen verwenden, die erhaltenen JDOM-Dokumentobjekte jedoch gleich sind.
Employee:: ID=1 Name=Pankaj Age=29 Gender=Male Role=Java DeveloperEmployee:: ID=2 Name=Lisa Age=35 Gender=Female Role=CEOEmployee:: ID=3 Name=Tom Age=40 Gender=Male Role=Manager
Das Obige ist der Inhalt des Java&Xml-Tutorials (6) mit JDOM zum Parsen von XML-Dateien. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!
/Get JDOM document from SAX Parserprivate static org.jdom2.Document useSAXParser(String fileName) throws JDOMException, IOException { SAXBuilder saxBuilder = new SAXBuilder(); return saxBuilder.build(new File(fileName)); } //Get JDOM Document from STAX Stream Parser or STAX Event Parserprivate static org.jdom2.Document useSTAXParser(String fileName, String type) throws FileNotFoundException, XMLStreamException, JDOMException{ if(type.equalsIgnoreCase("stream")){ StAXStreamBuilder staxBuilder = new StAXStreamBuilder(); XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(new FileInputStream(fileName)); return staxBuilder.build(xmlStreamReader); } StAXEventBuilder staxBuilder = new StAXEventBuilder(); XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); XMLEventReader xmlEventReader = xmlInputFactory.createXMLEventReader(new FileInputStream(fileName)); return staxBuilder.build(xmlEventReader); }

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

PHP und Python haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1.PHP eignet sich für die Webentwicklung mit einfacher Syntax und hoher Ausführungseffizienz. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit präziser Syntax und reichhaltigen Bibliotheken.

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

Java ist eine beliebte Programmiersprache, die sowohl von Anfängern als auch von erfahrenen Entwicklern erlernt werden kann. Dieses Tutorial beginnt mit grundlegenden Konzepten und geht dann weiter zu fortgeschrittenen Themen. Nach der Installation des Java Development Kit können Sie das Programmieren üben, indem Sie ein einfaches „Hello, World!“-Programm erstellen. Nachdem Sie den Code verstanden haben, verwenden Sie die Eingabeaufforderung, um das Programm zu kompilieren und auszuführen. Auf der Konsole wird „Hello, World!“ ausgegeben. Mit dem Erlernen von Java beginnt Ihre Programmierreise, und wenn Sie Ihre Kenntnisse vertiefen, können Sie komplexere Anwendungen erstellen.
