Heim  >  Artikel  >  Java  >  Wie kann ich XML-Dokumente mithilfe der XML-Parsing-Bibliothek in Java analysieren und generieren?

Wie kann ich XML-Dokumente mithilfe der XML-Parsing-Bibliothek in Java analysieren und generieren?

王林
王林Original
2023-08-02 16:09:33902Durchsuche

Wie kann ich XML-Dokumente mithilfe der XML-Parsing-Bibliothek in Java analysieren und generieren?

XML (Extensible Markup Language) ist eine Auszeichnungssprache, die zum Speichern und Übertragen strukturierter Daten verwendet wird. Bei der Java-Entwicklung müssen wir häufig XML-Dokumente analysieren und generieren. Java bietet viele XML-Parsing-Bibliotheken wie DOM, SAX und JDOM usw. Diese Bibliotheken können uns dabei helfen, XML-Dokumente einfach zu verarbeiten.

In diesem Artikel wird die Verwendung der XML-Parsing-Bibliothek in Java zum Parsen und Generieren von XML-Dokumenten vorgestellt und entsprechende Codebeispiele bereitgestellt.

1. XML-Dokument analysieren

  1. DOM-Analyse (Document Object Model) ist eine Analysemethode, die auf einer Baumstruktur basiert. Das gesamte XML-Dokument wird in den Speicher geladen, um eine Baumstruktur zu bilden Baumknoten zum Lesen und Ändern von XML-Inhalten.
Das Folgende ist ein Codebeispiel für das Parsen eines XML-Dokuments mithilfe von DOM:

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;

public class DOMParser {
    public static void main(String[] args) {
        try {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.parse("example.xml");
        
            NodeList nodeList = document.getElementsByTagName("student");
            for (int i = 0; i < nodeList.getLength(); i++) {
                Node node = nodeList.item(i);
                if (node.getNodeType() == Node.ELEMENT_NODE) {
                    Element element = (Element) node;
                    String id = element.getAttribute("id");
                    String name = element.getElementsByTagName("name").item(0).getTextContent();
                    String age = element.getElementsByTagName("age").item(0).getTextContent();
                    System.out.println("Student ID: " + id);
                    System.out.println("Name: " + name);
                    System.out.println("Age: " + age);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

SAX-Parsing

  1. SAX-Parsing (Simple API for XML) ist eine ereignisgesteuerte Parsing-Methode, die das XML-Dokument sequentiell durchläuft und die Knoten liest Starten und beenden Sie Ereignisse und verarbeiten Sie diese Ereignisse über Rückruffunktionen.
Das Folgende ist ein Codebeispiel für die Verwendung von SAX zum Parsen eines XML-Dokuments:

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class SAXParserExample {
    public static void main(String[] args) {
        try {
            SAXParserFactory factory = SAXParserFactory.newInstance();
            SAXParser parser = factory.newSAXParser();
            
            DefaultHandler handler = new DefaultHandler() {
                boolean bName = false;
                boolean bAge = false;
                
                public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
                    if (qName.equalsIgnoreCase("name")) {
                        bName = true;
                    }
                    
                    if (qName.equalsIgnoreCase("age")) {
                        bAge = true;
                    }
                }
                
                public void characters(char[] ch, int start, int length) throws SAXException {
                    if (bName) {
                        System.out.println("Name: " + new String(ch, start, length));
                        bName = false;
                    }
                    
                    if (bAge) {
                        System.out.println("Age: " + new String(ch, start, length));
                        bAge = false;
                    }
                }
            };
            
            parser.parse("example.xml", handler);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

2. XML-Dokument generieren

Verwenden Sie DOM zum Generieren eines XML-Dokuments

  1. Das Folgende ist ein Codebeispiel für die Verwendung von DOM zum Generieren eines XML-Dokument:
  2. import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    
    public class DOMGenerator {
        public static void main(String[] args) {
            try {
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                DocumentBuilder builder = factory.newDocumentBuilder();
                Document document = builder.newDocument();
                
                Element root = document.createElement("students");
                document.appendChild(root);
                
                Element student = document.createElement("student");
                root.appendChild(student);
                
                Element name = document.createElement("name");
                name.appendChild(document.createTextNode("John"));
                student.appendChild(name);
                
                Element age = document.createElement("age");
                age.appendChild(document.createTextNode("20"));
                student.appendChild(age);
                
                // ... 追加更多的节点和数据
                
                // 保存为XML文件
                TransformerFactory transformerFactory = TransformerFactory.newInstance();
                Transformer transformer = transformerFactory.newTransformer();
                DOMSource source = new DOMSource(document);
                StreamResult result = new StreamResult(new File("example.xml"));
                transformer.transform(source, result);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

Mit JDOM generieren XML-Dokument

  1. Das Folgende ist ein Codebeispiel zum Generieren eines XML-Dokuments mit JDOM:
  2. import org.jdom2.Document;
    import org.jdom2.Element;
    import org.jdom2.output.Format;
    import org.jdom2.output.XMLOutputter;
    
    public class JDOMGenerator {
        public static void main(String[] args) {
            try {
                Element root = new Element("students");
                Document document = new Document(root);
                
                Element student = new Element("student");
                root.addContent(student);
                
                Element name = new Element("name");
                name.setText("John");
                student.addContent(name);
                
                Element age = new Element("age");
                age.setText("20");
                student.addContent(age);
                
                // ... 添加更多节点和数据
                
                // 输出为XML字符串
                XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
                String xmlString = outputter.outputString(document);
                System.out.println(xmlString);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
Das Obige ist ein einfaches Beispiel für das Parsen und Generieren eines XML-Dokuments mithilfe der XML-Parsing-Bibliothek in Java. In der tatsächlichen Entwicklung können wir geeignete Parsing-Bibliotheken und -Methoden auswählen, um XML-Dokumente entsprechend den spezifischen Anforderungen zu verarbeiten und Daten effizienter zu betreiben und zu verwalten.

Das obige ist der detaillierte Inhalt vonWie kann ich XML-Dokumente mithilfe der XML-Parsing-Bibliothek in Java analysieren und generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn