Die DOM-XML-Parsing-Methode ist am einfachsten zu verstehen. Sie liest die XML-Datei als Dokumentobjekt in den Speicher und Sie können dann problemlos verschiedene Element- und Knotenobjekte durchlaufen. Das Durchqueren von Elementen und Knoten muss nicht in der richtigen Reihenfolge erfolgen.
Die DOM-Parsing-Methode eignet sich für kleinere XML-Dateien. Da sie die gesamte XML-Datei zur Verarbeitung in den Speicher lädt, ist sie nicht für die Verarbeitung größerer XML-Dateien geeignet. Für größere XML-Dateien müssen Sie SAX-Parsing verwenden.
In diesem Tutorial lesen und analysieren wir eine XML-Datei und verwenden sie zum Erstellen von Objekten. Unten finden Sie die XML-Datei, die wir analysieren werden.
employee.xml
<?xml version="1.0"?><Employees> <Employee> <name>Pankaj</name> <age>29</age> <role>Java Developer</role> <gender>Male</gender> </Employee> <Employee> <name>Lisa</name> <age>35</age> <role>CSS Developer</role> <gender>Female</gender> </Employee></Employees>
Der Inhalt dieser XML-Datei ist eine Liste von Mitarbeiterinformationen. Daher müssen wir eine Employee-Klasse erstellen, um Mitarbeiter darzustellen, und dann die XML-Dateiinformationen in das Programm einlesen .
Das Folgende ist die Definition der Employee-Klasse:
package com.journaldev.xml;public class Employee { private String name; private String gender; private int age; private String role; 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:: Name=" + this.name + " Age=" + this.age + " Gender=" + this.gender + " Role=" + this.role; } }
Es ist zu beachten, dass ich hier die toString()-Methode überschrieben habe, um nützliche Informationen über das Employee-Objekt auszudrucken. Als Nächstes verwenden wir die DOM-Analyse im Programm, um die XML-Datei zu lesen und die Mitarbeiterobjektliste zu erhalten.
XMLReaderDOM.java
package com.journaldev.xml; import java.io.File;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 org.w3c.dom.Document;import org.w3c.dom.Element; import org.w3c.dom.Node;import org.w3c.dom.NodeList; import org.xml.sax.SAXException;public class XMLReaderDOM { public static void main(String[] args) { String filePath = "employee.xml"; File xmlFile = new File(filePath); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder; try { dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(xmlFile); doc.getDocumentElement().normalize(); System.out.println("Root element :" + doc.getDocumentElement().getNodeName()); NodeList nodeList = doc.getElementsByTagName("Employee"); //now XML is loaded as Document in memory, lets convert it to Object List List<Employee> empList = new ArrayList<Employee>(); for (int i = 0; i < nodeList.getLength(); i++) { empList.add(getEmployee(nodeList.item(i))); } //lets print Employee list information for (Employee emp : empList) { System.out.println(emp.toString()); } } catch (SAXException | ParserConfigurationException | IOException e1) { e1.printStackTrace(); } } private static Employee getEmployee(Node node) { //XMLReaderDOM domReader = new XMLReaderDOM(); Employee emp = new Employee(); if (node.getNodeType() == Node.ELEMENT_NODE) { Element element = (Element) node; emp.setName(getTagValue("name", element)); emp.setAge(Integer.parseInt(getTagValue("age", element))); emp.setGender(getTagValue("gender", element)); emp.setRole(getTagValue("role", element)); } return emp; } private static String getTagValue(String tag, Element element) { NodeList nodeList = element.getElementsByTagName(tag).item(0).getChildNodes(); Node node = (Node) nodeList.item(0); return node.getNodeValue(); } }
Die Programmausgabe lautet wie folgt:
Root element :EmployeesEmployee:: Name=Pankaj Age=29 Gender=Male Role=Java DeveloperEmployee:: Name=Lisa Age=35 Gender=Female Role=CSS Developer
Unter tatsächlichen Umständen müssen wir zunächst die Rechtmäßigkeit der XML-Datei überprüfen, bevor wir sie analysieren Erfahren Sie, wie Sie XSD zur Validierung von XML-Dateien verwenden.
Ursprüngliche Adresse: http://www.php.cn/
Die DOM-XML-Parsing-Methode ist am einfachsten zu verstehen. Sie liest die XML-Datei als Dokumentobjekt in den Speicher und dann Sie Verschiedene Element- und Knotenobjekte können problemlos durchlaufen werden. Das Durchqueren von Elementen und Knoten muss nicht in der richtigen Reihenfolge erfolgen.
Die DOM-Parsing-Methode eignet sich für kleinere XML-Dateien. Da sie die gesamte XML-Datei zur Verarbeitung in den Speicher lädt, ist sie nicht für die Verarbeitung größerer XML-Dateien geeignet. Für größere XML-Dateien müssen Sie SAX-Parsing verwenden.
In diesem Tutorial lesen und analysieren wir eine XML-Datei und verwenden sie zum Erstellen von Objekten. Unten finden Sie die XML-Datei, die wir analysieren werden.
employee.xml
<?xml version="1.0"?><Employees> <Employee> <name>Pankaj</name> <age>29</age> <role>Java Developer</role> <gender>Male</gender> </Employee> <Employee> <name>Lisa</name> <age>35</age> <role>CSS Developer</role> <gender>Female</gender> </Employee></Employees>
Der Inhalt dieser XML-Datei ist eine Liste von Mitarbeiterinformationen. Daher müssen wir eine Employee-Klasse erstellen, um Mitarbeiter darzustellen, und dann die XML-Dateiinformationen in das Programm einlesen .
Das Folgende ist die Definition der Employee-Klasse:
package com.journaldev.xml;public class Employee { private String name; private String gender; private int age; private String role; 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:: Name=" + this.name + " Age=" + this.age + " Gender=" + this.gender + " Role=" + this.role; } }
Es ist zu beachten, dass ich hier die toString()-Methode überschrieben habe, um nützliche Informationen über das Employee-Objekt auszudrucken. Als Nächstes verwenden wir die DOM-Analyse im Programm, um die XML-Datei zu lesen und die Mitarbeiterobjektliste zu erhalten.
XMLReaderDOM.java
package com.journaldev.xml; import java.io.File; 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 org.w3c.dom.Document;import org.w3c.dom.Element; import org.w3c.dom.Node;import org.w3c.dom.NodeList; import org.xml.sax.SAXException;public class XMLReaderDOM { public static void main(String[] args) { String filePath = "employee.xml"; File xmlFile = new File(filePath); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder; try { dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(xmlFile); doc.getDocumentElement().normalize(); System.out.println("Root element :" + doc.getDocumentElement().getNodeName()); NodeList nodeList = doc.getElementsByTagName("Employee"); //now XML is loaded as Document in memory, lets convert it to Object List List<Employee> empList = new ArrayList<Employee>(); for (int i = 0; i < nodeList.getLength(); i++) { empList.add(getEmployee(nodeList.item(i))); } //lets print Employee list information for (Employee emp : empList) { System.out.println(emp.toString()); } } catch (SAXException | ParserConfigurationException | IOException e1) { e1.printStackTrace(); } } private static Employee getEmployee(Node node) { //XMLReaderDOM domReader = new XMLReaderDOM(); Employee emp = new Employee(); if (node.getNodeType() == Node.ELEMENT_NODE) { Element element = (Element) node; emp.setName(getTagValue("name", element)); emp.setAge(Integer.parseInt(getTagValue("age", element))); emp.setGender(getTagValue("gender", element)); emp.setRole(getTagValue("role", element)); } return emp; } private static String getTagValue(String tag, Element element) { NodeList nodeList = element.getElementsByTagName(tag).item(0).getChildNodes(); Node node = (Node) nodeList.item(0); return node.getNodeValue(); } }
Die Programmausgabe lautet wie folgt:
Root element :EmployeesEmployee:: Name=Pankaj Age=29 Gender=Male Role=Java DeveloperEmployee:: Name=Lisa Age=35 Gender=Female Role=CSS Developer
Unter tatsächlichen Umständen müssen wir zunächst die Rechtmäßigkeit der XML-Datei überprüfen, bevor wir sie analysieren Erfahren Sie, wie Sie XSD zur Validierung von XML-Dateien verwenden.
Das Obige ist der Inhalt des Java&Xml-Tutorials (2) mit der DOM-Methode zum Parsen von XML-Dateien. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).