recherche
Maisondéveloppement back-endTutoriel XML/RSSTutoriel Java&Xml (3) Utiliser DOM pour modifier le contenu d'un fichier XML

La méthode d'analyse DOM peut également être utilisée pour modifier des données XML. Nous pouvons l'utiliser pour effectuer des opérations telles que l'ajout d'éléments, la suppression d'éléments, la modification des valeurs d'éléments, la modification des attributs d'éléments, etc.

Notre fichier XML a le contenu suivant :
employee.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?><Employees>
    <Employee id="1">
        <name>Pankaj</name>
        <age>29</age>
        <role>Java Developer</role>
        <gender>Male</gender>
    </Employee>
    <Employee id="2">
        <name>Lisa</name>
        <age>35</age>
        <role>CSS Developer</role>
        <gender>Female</gender>
    </Employee></Employees>

Nous modifierons le contenu du fichier XML :
Selon le sexe de l'employé (genre) pour modifier la valeur de l'attribut "id". Si le sexe est masculin (Male), ajoutez "M" à la valeur de l'attribut id, et si le sexe est féminin (Female), ajoutez "F" à la valeur de l'attribut id.
2. Modifiez la valeur de l'élément name et mettez-le en majuscule.
3. L'élément "genre" n'a plus de sens, nous le supprimons.
4. Ajoutez un nœud « salaire » sous le nœud employé.
Lorsque nous avons terminé les opérations ci-dessus, enregistrez le contenu dans un nouveau fichier XML.
Ce qui suit est le code du programme Java analysé à l'aide du DOM :
ModifyXMLDOM.java

package com.journaldev.xml;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
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 ModifyXMLDOM {

    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();

            //update attribute value
            updateAttributeValue(doc);

            //update Element value
            updateElementValue(doc);

            //delete element
            deleteElement(doc);

            //add new element
            addElement(doc);

            //write the updated document to file or console
            doc.getDocumentElement().normalize();
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            DOMSource source = new DOMSource(doc);
            StreamResult result = new StreamResult(new File("employee_updated.xml"));
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.transform(source, result);
            System.out.println("XML file updated successfully");

        } catch (SAXException | ParserConfigurationException | IOException | TransformerException e1) {
            e1.printStackTrace();
        }
    }

    private static void addElement(Document doc) {
        NodeList employees = doc.getElementsByTagName("Employee");
        Element emp = null;

        //loop for each employee
        for(int i=0; i<employees.getLength();i++){
            emp = (Element) employees.item(i);
            Element salaryElement = doc.createElement("salary");
            salaryElement.appendChild(doc.createTextNode("10000"));
            emp.appendChild(salaryElement);
        }
    }

    private static void deleteElement(Document doc) {
        NodeList employees = doc.getElementsByTagName("Employee");
        Element emp = null;
        //loop for each employee
        for(int i=0; i<employees.getLength();i++){
            emp = (Element) employees.item(i);
            Node genderNode = emp.getElementsByTagName("gender").item(0);
            emp.removeChild(genderNode);
        }

    }

    private static void updateElementValue(Document doc) {
        NodeList employees = doc.getElementsByTagName("Employee");
        Element emp = null;
        //loop for each employee
        for(int i=0; i<employees.getLength();i++){
            emp = (Element) employees.item(i);
            Node name = emp.getElementsByTagName("name").item(0).getFirstChild();
            name.setNodeValue(name.getNodeValue().toUpperCase());
        }
    }

    private static void updateAttributeValue(Document doc) {
        NodeList employees = doc.getElementsByTagName("Employee");
        Element emp = null;
        //loop for each employee
        for(int i=0; i<employees.getLength();i++){
            emp = (Element) employees.item(i);
            String gender = emp.getElementsByTagName("gender").item(0).getFirstChild().getNodeValue();
            if(gender.equalsIgnoreCase("male")){
                //prefix id attribute with M
                emp.setAttribute("id", "M"+emp.getAttribute("id"));
            }else{
                //prefix id attribute with F
                emp.setAttribute("id", "F"+emp.getAttribute("id"));
            }
        }
    }

}

Contenu du fichier XML de sortie :
employee_updated.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?><Employees>
    <Employee id="M1">
        <name>PANKAJ</name>
        <age>29</age>
        <role>Java Developer</role>

    <salary>10000</salary></Employee>
    <Employee id="F2">
        <name>LISA</name>
        <age>35</age>
        <role>CSS Developer</role>

    <salary>10000</salary></Employee></Employees>

Original Adresse texte : http://www.php.cn/

La méthode d'analyse DOM peut également être utilisée pour modifier des données XML. Nous pouvons l'utiliser pour effectuer des opérations telles que l'ajout d'éléments, la suppression d'éléments, la modification des valeurs d'éléments, modifier les attributs des éléments, etc.
Notre fichier XML a le contenu suivant :
employee.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?><Employees>
    <Employee id="1">
        <name>Pankaj</name>
        <age>29</age>
        <role>Java Developer</role>
        <gender>Male</gender>
    </Employee>
    <Employee id="2">
        <name>Lisa</name>
        <age>35</age>
        <role>CSS Developer</role>
        <gender>Female</gender>
    </Employee></Employees>

Nous modifierons le contenu du fichier XML :
Modifier le "id" en fonction de l'employé. Valeurs de l'attribut de genre, si le sexe est masculin (Male), ajoutez "M" à la valeur de l'attribut id, et si le sexe est féminin (Female), ajoutez "F" à la valeur de l'attribut id.
2. Modifiez la valeur de l'élément name et mettez-le en majuscule.
3. L'élément "genre" n'a plus de sens, nous le supprimons.
4. Ajoutez un nœud « salaire » sous le nœud employé.
Lorsque nous avons terminé les opérations ci-dessus, enregistrez le contenu dans un nouveau fichier XML.
Ce qui suit est le code du programme Java qui utilise l'analyse DOM :
ModifyXMLDOM.java

package com.journaldev.xml;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
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 ModifyXMLDOM {

    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();

            //update attribute value
            updateAttributeValue(doc);

            //update Element value
            updateElementValue(doc);

            //delete element
            deleteElement(doc);

            //add new element
            addElement(doc);

            //write the updated document to file or console
            doc.getDocumentElement().normalize();
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            DOMSource source = new DOMSource(doc);
            StreamResult result = new StreamResult(new File("employee_updated.xml"));
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.transform(source, result);
            System.out.println("XML file updated successfully");

        } catch (SAXException | ParserConfigurationException | IOException | TransformerException e1) {
            e1.printStackTrace();
        }
    }

    private static void addElement(Document doc) {
        NodeList employees = doc.getElementsByTagName("Employee");
        Element emp = null;

        //loop for each employee
        for(int i=0; i<employees.getLength();i++){
            emp = (Element) employees.item(i);
            Element salaryElement = doc.createElement("salary");
            salaryElement.appendChild(doc.createTextNode("10000"));
            emp.appendChild(salaryElement);
        }
    }

    private static void deleteElement(Document doc) {
        NodeList employees = doc.getElementsByTagName("Employee");
        Element emp = null;
        //loop for each employee
        for(int i=0; i<employees.getLength();i++){
            emp = (Element) employees.item(i);
            Node genderNode = emp.getElementsByTagName("gender").item(0);
            emp.removeChild(genderNode);
        }

    }

    private static void updateElementValue(Document doc) {
        NodeList employees = doc.getElementsByTagName("Employee");
        Element emp = null;
        //loop for each employee
        for(int i=0; i<employees.getLength();i++){
            emp = (Element) employees.item(i);
            Node name = emp.getElementsByTagName("name").item(0).getFirstChild();
            name.setNodeValue(name.getNodeValue().toUpperCase());
        }
    }

    private static void updateAttributeValue(Document doc) {
        NodeList employees = doc.getElementsByTagName("Employee");
        Element emp = null;
        //loop for each employee
        for(int i=0; i<employees.getLength();i++){
            emp = (Element) employees.item(i);
            String gender = emp.getElementsByTagName("gender").item(0).getFirstChild().getNodeValue();
            if(gender.equalsIgnoreCase("male")){
                //prefix id attribute with M
                emp.setAttribute("id", "M"+emp.getAttribute("id"));
            }else{
                //prefix id attribute with F
                emp.setAttribute("id", "F"+emp.getAttribute("id"));
            }
        }
    }

}

Contenu du fichier XML de sortie :
employee_updated.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?><Employees>
    <Employee id="M1">
        <name>PANKAJ</name>
        <age>29</age>
        <role>Java Developer</role>

    <salary>10000</salary></Employee>
    <Employee id="F2">
        <name>LISA</name>
        <age>35</age>
        <role>CSS Developer</role>

    <salary>10000</salary></Employee></Employees>

Ci-dessus, il s'agit du didacticiel Java&Xml (3) utilisant la méthode DOM pour modifier le contenu des fichiers XML. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Documents RSS: Foundation of Web SyndicationDocuments RSS: Foundation of Web SyndicationApr 18, 2025 am 12:04 AM

Les documents RSS sont des fichiers structurés basés sur XML utilisés pour publier et s'abonner au contenu fréquemment mis à jour. Ses principales fonctions comprennent: 1) les mises à jour automatisées de contenu, 2) l'agrégation de contenu et 3) l'amélioration de l'efficacité de navigation. Grâce à RSSFeed, les utilisateurs peuvent s'abonner et obtenir les dernières informations de différentes sources en temps opportun.

Décodage RSS: La structure XML des flux de contenuDécodage RSS: La structure XML des flux de contenuApr 17, 2025 am 12:09 AM

La structure XML de RSS comprend: 1. Déclaration XML et version RSS, 2. Channel (canal), 3. Élément. Ces pièces constituent la base des fichiers RSS, permettant aux utilisateurs d'obtenir et de traiter les informations de contenu en analysant les données XML.

Comment analyser et utiliser des flux RSS basés sur XMLComment analyser et utiliser des flux RSS basés sur XMLApr 16, 2025 am 12:05 AM

RSSFeedsUsexmlTosyNDicateContent; ParsingTheminVolvesloadingXml, NavigationItsStructure, andextractingData.Applications, il ye

Documents RSS: comment ils livrent votre contenu préféréDocuments RSS: comment ils livrent votre contenu préféréApr 15, 2025 am 12:01 AM

Les documents RSS fonctionnent en publiant des mises à jour de contenu via des fichiers XML, et les utilisateurs s'abonnent et reçoivent des notifications via des lecteurs RSS. 1. Content Publisher Crée et met à jour les documents RSS. 2. Le lecteur RSS accède et analyse régulièrement les fichiers XML. 3. Les utilisateurs parcourent et lisent le contenu mis à jour. Exemple d'utilisation: abonnez-vous au flux RSS de TechCrunch, copiez simplement le lien vers le lecteur RSS.

Building Feeds avec XML: un guide pratique de RSSBuilding Feeds avec XML: un guide pratique de RSSApr 14, 2025 am 12:17 AM

Les étapes pour créer un RSSFeed à l'aide de XML sont les suivantes: 1. Créez l'élément racine et définissez la version; 2. Ajouter l'élément de canal et ses informations de base; 3. Ajouter l'élément d'entrée, y compris le titre, le lien et la description; 4. Convertir la structure XML en une chaîne et la sortir. Avec ces étapes, vous pouvez créer un RSSFeed valide à partir de zéro et améliorer sa fonctionnalité en ajoutant des éléments supplémentaires tels que la date de version et les informations sur l'auteur.

Création de documents RSS: un tutoriel étape par étapeCréation de documents RSS: un tutoriel étape par étapeApr 13, 2025 am 12:10 AM

Les étapes pour créer un document RSS sont les suivantes: 1. Écrivez au format XML, avec l'élément racine, y compris les éléments. 2. Ajouter, etc. Éléments pour décrire les informations du canal. 3. Ajouter des éléments, chacun représentant une entrée de contenu, y compris ,,,,,,,,,,,,. 4. Ajouter éventuellement et des éléments pour enrichir le contenu. 5. Assurez-vous que le format XML est correct, utilisez des outils en ligne pour vérifier, optimiser les performances et tenir le contenu à jour.

Rôle de XML dans RSS: le fondement du contenu syndiquéRôle de XML dans RSS: le fondement du contenu syndiquéApr 12, 2025 am 12:17 AM

Le rôle central de XML dans RSS est de fournir un format de données standardisé et flexible. 1. La structure et les caractéristiques du langage de balisage de XML le rendent adapté à l'échange et au stockage des données. 2. RSS utilise XML pour créer un format standardisé pour faciliter le partage de contenu. 3. L'application de XML en RSS comprend des éléments qui définissent le contenu des aliments, tels que le titre et la date de sortie. 4. Les avantages incluent la normalisation et l'évolutivité, et les défis incluent des exigences de syntaxe verbeux et strictes de documents. 5. Les meilleures pratiques incluent la validation de la validité XML, la maintenance simple, l'utilisation des CDATA et la mise à jour régulièrement.

De XML au contenu lisible: démystifier les flux RSSDe XML au contenu lisible: démystifier les flux RSSApr 11, 2025 am 12:03 AM

RSSFeedsArexMLDocuments utilisé pour la contention de la variabilité et la distribution.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel