Exemple de lecture et d'analyse de fichier XML Java
Lisez le fichier XML local et analysez-le via DOM. La caractéristique de l'analyse DOM est de charger l'intégralité du fichier XML dans la mémoire pour former une arborescence DOM. La structure arborescente est pratique pour le parcours et la manipulation.
La caractéristique de l'analyse DOM est de lire le fichier XML et de le convertir en une arborescence dom, et de parcourir les nœuds.
C'est le concept de nœuds du W3c
Si le XML contient une grande quantité de données, en raison de la fonctionnalité de dom chargeant le XML dans la mémoire en même temps, le dom n'est pas adapté pour contenant une grande quantité de données d'analyse XML. Lorsqu'une grande quantité de XML est incluse, l'analyse avec SAX économise de la mémoire.
Ce qui suit est un exemple d'utilisation de DOM pour analyser des fichiers XML :
La structure du fichier XML est la suivante :
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book category="cooking"> <title>Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="children"> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="web"> <title>XQuery Kick Start</title> <author>James McGovern</author> <year>2003</year> <price>49.99</price> </book> <book category="web" cover="paperback"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
Créez une classe pour analyser XML comme suit :
package xml.dom; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class ReadXmlFile { public static void main(String[] args) { try{ File xmlFile = new File("src/resource/book.xml"); DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); Document doc = builder.parse(xmlFile); doc.getDocumentElement().normalize(); System.out.println("Root element: "+doc.getDocumentElement().getNodeName()); NodeList nList = doc.getElementsByTagName("book"); for(int i = 0 ; i<nList.getLength();i++){ Node node = nList.item(i); System.out.println("Node name: "+ node.getNodeName()); Element ele = (Element)node; System.out.println("----------------------------"); if(node.getNodeType() == Element.ELEMENT_NODE){ System.out.println("book category: "+ ele.getAttribute("category")); System.out.println("title name: "+ ele.getElementsByTagName("title").item(0).getTextContent()); System.out.println("author name: "+ele.getElementsByTagName("author").item(0).getTextContent()); System.out.println("year :"+ele.getElementsByTagName("year").item(0).getTextContent()); System.out.println("price : "+ele.getElementsByTagName("price").item(0).getTextContent()); System.out.println("-------------------------"); } }
Résultats de l'analyse :
Root element: bookstore Node name: book ---------------------------- book category: cooking title name: Everyday Italian author name: Giada De Laurentiis year :2005 price : 30.00 ------------------------- Node name: book ---------------------------- book category: children title name: Harry Potter author name: J K. Rowling year :2005 price : 29.99 ------------------------- Node name: book ---------------------------- book category: web title name: XQuery Kick Start author name: James McGovern year :2003 price : 49.99 ------------------------- Node name: book ---------------------------- book category: web title name: Learning XML author name: Erik T. Ray year :2003 price : 39.95 -------------------------
Ce qui précède consiste à obtenir la valeur correspondante via le nom
Ce qui suit est sorti à l'aide du nœud de boucle :
Le code. pour la méthode de sortie du nœud de boucle est la suivante :
package xml.dom; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class ReadXmlFile2 { public static void main(String[] args) { try{ File xmlFile = new File("src/resource/book.xml"); DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); Document doc = builder.parse(xmlFile); doc.getDocumentElement().normalize(); System.out.println("Root element: "+doc.getDocumentElement().getNodeName()); if(doc.hasChildNodes()){ printNode(doc.getChildNodes()); } }catch(Exception e){ e.printStackTrace(); } } public static void printNode(NodeList nodeList){ System.out.println("------------------------"); // System.out.println(nodeList.getLength()); for(int i = 0; i<nodeList.getLength(); i++){ Node node = (Node)nodeList.item(i); if(node.getNodeType() == Node.ELEMENT_NODE){ System.out.println("node name: "+node.getNodeName()); System.out.println("node value: "+node.getTextContent()); if(node.hasAttributes()){ NamedNodeMap nodeMap = node.getAttributes(); for(int j = 0; j < nodeMap.getLength() ; j++){ Node nodenew = nodeMap.item(j); System.out.println("node name "+nodenew.getNodeName()); System.out.println("node value "+nodenew.getNodeValue()); } } if(node.hasChildNodes()){ printNode(node.getChildNodes()); } } } } }
Les résultats de sortie sont les suivants :
Root element: bookstore ------------------------ node name: bookstore node value: Everyday Italian Giada De Laurentiis 2005 30.00 Harry Potter J K. Rowling 2005 29.99 XQuery Kick Start James McGovern 2003 49.99 Learning XML Erik T. Ray 2003 39.95 ------------------------ node name: book node value: Everyday Italian Giada De Laurentiis 2005 30.00 node name category node value cooking ------------------------ node name: title node value: Everyday Italian node name lang node value en ------------------------ node name: author node value: Giada De Laurentiis ------------------------ node name: year node value: 2005 ------------------------ node name: price node value: 30.00 ------------------------ node name: book node value: Harry Potter J K. Rowling 2005 29.99 node name category node value children ------------------------ node name: title node value: Harry Potter node name lang node value en ------------------------ node name: author node value: J K. Rowling ------------------------ node name: year node value: 2005 ------------------------ node name: price node value: 29.99 ------------------------ node name: book node value: XQuery Kick Start James McGovern 2003 49.99 node name category node value web ------------------------ node name: title node value: XQuery Kick Start node name lang node value en ------------------------ node name: author node value: James McGovern ------------------------ node name: year node value: 2003 ------------------------ node name: price node value: 49.99 ------------------------ node name: book node value: Learning XML Erik T. Ray 2003 39.95 node name category node value web node name cover node value paperback ------------------------ node name: title node value: Learning XML node name lang node value en ------------------------ node name: author node value: Erik T. Ray ------------------------ node name: year node value: 2003 ------------------------ node name: price node value: 39.95 ------------------------
Questions sur les nœuds :
<book category="cooking"> <title>Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book>
Pour le livre applications : doc.getChildNodes() obtient une NodeList dont la longueur est de 9
Les neuf nœuds sont les suivants :
nœud titre
nœud lang
nœud quotidien
nœud auteur
Nœud Giada De Laurentiis
nœud année
nœud 2005
nœud prix
nœud 30,00
Pour plus d'articles liés à la lecture et à l'analyse Java d'exemples de fichiers XML, veuillez faire attention au PHP Site chinois !

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

XmlNamespacesaRenotalways adressé, mais theyaressential incertaintesitations.1) thelpreventnameConflictsInxmlcumentscombiningElementsfrommultiplesources.2) theyCanBeomitsInSmall, auto-cologéDocuments.3) BestPracticescluclursingMeaningfulPrefixesa

XMLNAMESPACESCANSEARRORRORRORS, BUSTHESECANBERESELBUSBYBOWINGSPECIFICSTEPS.1)

JSON, YAML, Protocolbuffers, CSV, et TomlaresuitableAlternatiVestOxML.1) JSONISIDEALFORREADIBILITÉ ENFAIS SyntaxandSupportsComments.3) ProtocolBuffersExcelinhigh-PerformanceApplications.4) CSVisperfectforsImpledataExchange.5)

XMLREMAINSRELEVANTDUETOITSITUSTRUCTURÉ AND-DESCRINGNATATURE.ITEXCELSInUSTRIESEQUIRING PRÉCISION ET CLARISTE SUPPORTSCUSSIQUETUSTAGSANDSEDSCHEMAS, ANDEGRATSEDATAVANAMES PACES, WHILITCANBEVERBOSEANDRESOURCE-ENVIRONNEMENT.

XMLMUSTBEWELL-FORMEDANDVALID: 1) bien forméxmlfollowsbasicsyntacticrulesLikeProperlyNestedAndClosedTags.2) validxmladhestospecificrulesdefinedbydtdsorxmlSchema, assurant la dataingrity et la consommation de consommation de dons.

XmLencodingDoOesAffect si l'établissement a été formé par rapport à un pantalon.1).

XmlischosenoveroTherformatsDuetOitsFlexibility, Human-Readabilité, androbustecosystem.1) itExcelsIndataExchangeandConfiguration.2) il est de la platform

XMLSCHEMAUSCRUCIALFORVALIDIDATINGSMLDOCUMENTS a-t-il eu la consommation de dataentegrity et la consommation de systèmes.1)
