Heim Backend-Entwicklung XML/RSS-Tutorial Detaillierte Einführung in die Grundlagen der XML-Analyse in Java

Detaillierte Einführung in die Grundlagen der XML-Analyse in Java

Mar 18, 2017 pm 04:55 PM

dom4j ist eine Java XML API, ähnlich wie jdom, die zum Lesen und Schreiben von XML-Dateien verwendet wird. dom4j ist eine sehr, sehr hervorragende Java-XML-API mit hervorragender Leistung, leistungsstarken Funktionen und extremer Benutzerfreundlichkeit. Es ist auch eine Open-Source-Software und kann in Bezug auf API-Leistung und Funktionalität auf SourceForge gefunden werden und Benutzerfreundlichkeit ist dom4j in jeder Hinsicht hervorragend. Heutzutage kann man sehen, dass immer mehr Java-Software dom4j zum Lesen und Schreiben von XML verwendet, wie etwa Hibernate, einschließlich Suns eigenem JAXM, das ebenfalls Dom4j verwendet.
Um mit Dom4j zu entwickeln, müssen Sie die entsprechende JAR-Datei von dom4j herunterladen

  1. Laden Sie die entsprechende JAR-Datei von dom4j herunter

    2.dom4j ist ein Open-Source-Projekt auf SourceForge .net, sodass Sie zu http://sourceforge.net/projects/dom4j gehen können, um die neueste Version herunterzuladen.
    Der Effekt nach dem Dekomprimieren der heruntergeladenen ZIP-Datei ist wie folgt:

Öffnen Sie dom4j – Die dekomprimierte Datei von 1.6.1

Hier sehen Sie den Ordner mit der Dokumentationshilfe und die Datei dom4j-1.6.1.jar, die dom4j zum Parsen der XML-Datei verwenden muss Sie müssen nur die Datei dom4j-1.6.1.jar einfügen. Nachdem wir sie in das von uns entwickelte Projekt eingefügt haben, können wir sie mit dom4j entwickeln.
Im Folgenden werde ich die Konstruktionsmethode zum Erstellen eines Java-Projekts mit Myeclipse als Beispiel nehmen .
Erstellen Sie zuerst ein Demoprojekt, erstellen Sie eine lib-Datei im Demoprojekt und kopieren Sie die Datei dom4j-1.6.1.jar in die lib. Klicken Sie dann mit der rechten Maustaste auf die Datei dom4j-1.6.1jar
und klicken Sie auf Zum Build-Pfad hinzufügen, um es in das Projekt zu integrieren.
Hinweis: Wenn Sie ein Webprojekt entwickeln, müssen wir es nur nach web-inf/lib kopieren und es wird automatisch in das Webprojekt integriert > Während des Projektentwicklungsprozesses können Sie im Ordner „docs“ (Hilfedokument) nach „index.html“ suchen. Öffnen Sie es und klicken Sie auf „Schnellstart“, um mithilfe des Hilfedokuments das Parsen von dom4j für XML zu erlernen.
Im Folgenden werde ich das übersetzen und erklären Wichtige Methoden in der API sind meiner Meinung nach wie folgt:

1. In DOM4j gibt es drei Objektmethoden
:
1 Die XML -Datei und das Dokumentobjekt erhalten. 4. Schreiben Sie das Dokument in eine XML-Datei

5.

String
 SAXReader reader = new SAXReader();                
       Document   document = reader.read(new File("csdn.xml"));
Nach dem Login kopieren
und XML-Konvertierung


6. Fall (analysieren Sie die Datei sida.xml und führen Sie sie aus Quarkbetrieb darauf)
  String text = "<csdn></csdn>";              
                  Document document = DocumentHelper.parseText(text);
Nach dem Login kopieren

1.sida.xml beschreibt den Betrieb der vier berühmten Werke. Der Dateiinhalt ist wie folgt

 Document document = DocumentHelper.createDocument();             //创建根节点  
                 Element root = document.addElement("csdn");
Nach dem Login kopieren
2. Analysetestbetrieb

1.获取文档的根节点.  
      Element root = document.getRootElement();  
    2.取得某个节点的子节点.  
      Element element=node.element(“四大名著");  
    3.取得节点的文字  
        String text=node.getText();  
    4.取得某节点下所有名为“csdn”的子节点,并进行遍历.  
       List nodes = rootElm.elements("csdn");   
         for (Iterator it = nodes.iterator(); it.hasNext();) {     
      Element elm = (Element) it.next();    
    // do something   }  
     5.对某节点下的所有子节点进行遍历.      
      for(Iterator it=root.elementIterator();it.hasNext();){        
        Element element = (Element) it.next();        
       // do something    }  
    6.在某节点下添加子节点  
      Element elm = newElm.addElement("朝代");  
    7.设置节点文字.  elm.setText("明朝");  
    8.删除某节点.//childElement是待删除的节点,parentElement是其父节点  parentElement.remove(childElment);  
    9.添加一个CDATA节点.Element contentElm = infoElm.addElement("content");contentElm.addCDATA(“cdata区域”);
Nach dem Login kopieren
Kommentieren Sie einen Teil des Codes entsprechend, um den laufenden Effekt zu beobachten, und üben Sie ihn wiederholt. Ich hoffe, Sie haben ein besseres Verständnis für dom4j.

7. String- und XML-Konvertierungsfall

1.取得某节点下的某属性    Element root=document.getRootElement();        //属性名name  
         Attribute attribute=root.attribute("id");  
    2.取得属性的文字  
    String text=attribute.getText();  
    3.删除某属性 Attribute attribute=root.attribute("size"); root.remove(attribute);  
    4.遍历某节点的所有属性     
      Element root=document.getRootElement();        
       for(Iterator it=root.attributeIterator();it.hasNext();){          
           Attribute attribute = (Attribute) it.next();           
           String text=attribute.getText();          
           System.out.println(text);    
  }  
    5.设置某节点的属性和文字.   newMemberElm.addAttribute("name", "sitinspring");  
    6.设置属性的文字   Attribute attribute=root.attribute("name");   attribute.setText("csdn");
Nach dem Login kopieren

Strg + linke Maustaste

1.文档中全为英文,不设置编码,直接写入的形式.    
       XMLWriter writer = new XMLWriter(new  FileWriter("ot.xml"));   
       writer.write(document);    
       writer.close();  
    2.文档中含有中文,设置编码格式写入的形式.  
       OutputFormat format = OutputFormat.createPrettyPrint();// 创建文件输出的时候,自动缩进的格式                    
       format.setEncoding("UTF-8");//设置编码  
       XMLWriter writer = new XMLWriter(newFileWriter("output.xml"),format);  
       writer.write(document);  
       writer.close();
Nach dem Login kopieren
F3 Direkt zur relevanten Klasse springen

F2 Klassendetails anzeigen

Strg + o Alle
1.将字符串转化为XML  
      String text = "<csdn> <java>Java班</java></csdn>";  
      Document document = DocumentHelper.parseText(text);  
    2.将文档或节点的XML转化为字符串.  
       SAXReader reader = new SAXReader();  
       Document   document = reader.read(new File("csdn.xml"));              
       Element root=document.getRootElement();      
       String docXmlText=document.asXML();  
       String rootXmlText=root.asXML();  
       Element memberElm=root.element("csdn");  
       String memberXmlText=memberElm.asXML();
Nach dem Login kopieren
Konstruktoren von anzeigen die aktuelle Klasse

Debug:

<?xml version="1.0" encoding="UTF-8"?>  
<四大名著>  
    <西游记 id="x001">  
        <作者>吴承恩1</作者>  
        <作者>吴承恩2</作者>  
        <朝代>明朝</朝代>  
    </西游记>  
    <红楼梦 id="x002">  
        <作者>曹雪芹</作者>  
    </红楼梦>  
</四大名著>
Nach dem Login kopieren
F5 Geben Sie die Verarbeitungsfunktion ein F6 Nächster Schritt F8 Gehe direkt zum nächsten Haltepunkt

package dom4j;  
  
import java.io.File;  
import java.io.FileOutputStream;  
import java.io.FileWriter;  
import java.io.OutputStreamWriter;  
import java.nio.charset.Charset;  
import java.nio.charset.CharsetEncoder;  
import java.util.Iterator;  
import java.util.List;  
  
import org.dom4j.Attribute;  
import org.dom4j.Document;  
import org.dom4j.Element;  
import org.dom4j.io.OutputFormat;  
import org.dom4j.io.SAXReader;  
import org.dom4j.io.XMLWriter;  
import org.junit.Test;  
  
public class Demo01 {  
  
    @Test  
    public void test() throws Exception {  
  
        // 创建saxReader对象  
        SAXReader reader = new SAXReader();  
        // 通过read方法读取一个文件 转换成Document对象  
        Document document = reader.read(new File("src/dom4j/sida.xml"));  
        //获取根节点元素对象  
        Element node = document.getRootElement();  
        //遍历所有的元素节点          listNodes(node);  
  
        // 获取四大名著元素节点中,子节点名称为红楼梦元素节点。  
        Element element = node.element("红楼梦");  
        //获取element的id属性节点对象  
        Attribute attr = element.attribute("id");  
        //删除属性          element.remove(attr);  
        //添加新的属性  
        element.addAttribute("name", "作者");  
        // 在红楼梦元素节点中添加朝代元素的节点  
        Element newElement = element.addElement("朝代");  
        newElement.setText("清朝");  
        //获取element中的作者元素节点对象  
        Element author = element.element("作者");  
        //删除元素节点  
        boolean flag = element.remove(author);  
        //返回true代码删除成功,否则失败          System.out.println(flag);  
        //添加CDATA区域  
        element.addCDATA("红楼梦,是一部爱情小说.");  
        // 写入到一个新的文件中          writer(document);  
  
    }  
  
    /** 
     * 把document对象写入新的文件 
     *  
     * @param document 
     * @throws Exception 
     */  
    public void writer(Document document) throws Exception {  
        // 紧凑的格式  
        // OutputFormat format = OutputFormat.createCompactFormat();  
        // 排版缩进的格式  
        OutputFormat format = OutputFormat.createPrettyPrint();  
        // 设置编码  
        format.setEncoding("UTF-8");  
        // 创建XMLWriter对象,指定了写出文件及编码格式  
        // XMLWriter writer = new XMLWriter(new FileWriter(new  
        // File("src//a.xml")),format);  
        XMLWriter writer = new XMLWriter(new OutputStreamWriter(  
                new FileOutputStream(new File("src//a.xml")), "UTF-8"), format);  
        // 写入          writer.write(document);  
        // 立即写入          writer.flush();  
        // 关闭操作          writer.close();  
    }  
  
    /** 
     * 遍历当前节点元素下面的所有(元素的)子节点 
     *  
     * @param node 
     */  
    public void listNodes(Element node) {  
        System.out.println("当前节点的名称::" + node.getName());  
        // 获取当前节点的所有属性节点  
        List<Attribute> list = node.attributes();  
        // 遍历属性节点  
        for (Attribute attr : list) {  
            System.out.println(attr.getText() + "-----" + attr.getName()  
                    + "---" + attr.getValue());  
        }  
  
        if (!(node.getTextTrim().equals(""))) {  
            System.out.println("文本内容::::" + node.getText());  
        }  
  
        // 当前节点下面子节点迭代器  
        Iterator<Element> it = node.elementIterator();  
        // 遍历  
        while (it.hasNext()) {  
            // 获取某个子节点对象  
            Element e = it.next();  
            // 对子节点进行遍历              listNodes(e);  
        }  
    }  
  
    /** 
     * 介绍Element中的element方法和elements方法的使用 
     *  
     * @param node 
     */  
    public void elementMethod(Element node) {  
        // 获取node节点中,子节点的元素名称为西游记的元素节点。  
        Element e = node.element("西游记");  
        // 获取西游记元素节点中,子节点为作者的元素节点(可以看到只能获取第一个作者元素节点)  
        Element author = e.element("作者");  
  
        System.out.println(e.getName() + "----" + author.getText());  
  
        // 获取西游记这个元素节点 中,所有子节点名称为作者元素的节点 。    
        List<Element> authors = e.elements("作者");  
        for (Element aut : authors) {  
            System.out.println(aut.getText());  
        }  
  
        // 获取西游记这个元素节点 所有元素的子节点。  
        List<Element> elements = e.elements();  
  
        for (Element el : elements) {  
            System.out.println(el.getText());  
        }  
  
    }  
  
}
Nach dem Login kopieren


Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Grundlagen der XML-Analyse in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

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.

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

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

Java -Programm, um das Kapselvolumen zu finden Java -Programm, um das Kapselvolumen zu finden Feb 07, 2025 am 11:37 AM

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

Wie führe ich Ihre erste Spring -Boot -Anwendung in der Spring Tool Suite aus? Wie führe ich Ihre erste Spring -Boot -Anwendung in der Spring Tool Suite aus? Feb 07, 2025 pm 12:11 PM

Spring Boot vereinfacht die Schaffung robuster, skalierbarer und produktionsbereiteter Java-Anwendungen, wodurch die Java-Entwicklung revolutioniert wird. Der Ansatz "Übereinkommen über Konfiguration", der dem Feder -Ökosystem inhärent ist, minimiert das manuelle Setup, Allo

Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Oct 13, 2024 pm 01:32 PM

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.

Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung Oct 11, 2024 pm 06:30 PM

Java leicht gemacht: Ein Leitfaden für Anfänger zur leistungsstarken Programmierung Java ist eine leistungsstarke Programmiersprache, die in allen Bereichen von mobilen Anwendungen bis hin zu Systemen auf Unternehmensebene verwendet wird. Für Anfänger ist die Syntax von Java einfach und leicht zu verstehen, was es zu einer idealen Wahl zum Erlernen des Programmierens macht. Grundlegende Syntax Java verwendet ein klassenbasiertes objektorientiertes Programmierparadigma. Klassen sind Vorlagen, die zusammengehörige Daten und Verhaltensweisen organisieren. Hier ist ein einfaches Java-Klassenbeispiel: publicclassPerson{privateStringname;privateintage;

Java -Programm zum Einfügen eines Elements am unteren Rand eines Stapels Java -Programm zum Einfügen eines Elements am unteren Rand eines Stapels Feb 07, 2025 am 11:59 AM

Ein Stapel ist eine Datenstruktur, die dem LIFO -Prinzip (zuletzt, zuerst heraus) folgt. Mit anderen Worten, das letzte Element, das wir einem Stapel hinzufügen, ist das erste, das entfernt wird. Wenn wir einem Stapel Elemente hinzufügen (oder drücken), werden sie oben platziert. vor allem der

See all articles