Programmation XML-DOM
XMLProgrammation-DOM
XML Technologie d'analyse
Il existe deux types de technologie d'analyse XML couramment utilisés : dom analyse et analyse sax.
dom : (Modèle objet de document, c'est-à-dire le modèle objet de document ) estW3C recommande une manière de gérer le XML.
sax: (API simple pour XML) n'est pas un standard officiel, mais c'est du XMLLe standard de facto dans la communauté, presque tous les analyseurs XML le supportent.
JaxpIntroduction
Jaxp (API Java pour le traitement XML)estJavaUn package de développement pour la programmation XML, qui se compose de javax.xml, org. Il se compose des packages w3c.dom , org.xml.sax et de leurs sous-packages.
Dans le packagejavax.xml.parsers, plusieurs classes d'usine sont définies lorsque les programmeurs appellent ces classes d'usine, ils peuvent obtenir le . xml document analysé objet analyseur DOM ou SAX .
DOMAperçu de base
DOM (Document Object Model Document Object Model), oui W3C Une interface de programmation standard pour gérer les langages de balisage extensibles recommandés par l'organisation. XML DOM définit les objets et attributs de tous les éléments XML , ainsi que les méthodes (interfaces) pour y accéder.
Schéma
DOM
Modèle(modèle d'objet de document)
analyse le document XML, il analysera tous les éléments du document en NodeObjet(Nœud). Dans
dom, la relation entre les nœuds est la suivante : 1
,sont situés sur un node Le nœud est le nœud parent du nœud (parent)2
,Le nœud en dessous d'un nœud est le nœud enfant du nœud (enfants ) 3, Les nœuds de même niveau et avec le même nœud parent sont des nœuds frères (frère) 4 ,L'ensemble des nœuds au niveau suivant d'un nœud est le nœud descendant (descendant) 5, parent, nœuds grands-parents et tous ceux situés au dessus du nœud, sont l'Ancêtre du nœud (ancêtre) Node l'objet fournit un série de constantes pour représenter le type de nœud. Lorsque les développeurs obtiennent un certain type Node, ils peuvent convertir le nœud Node en nœud. objet nœud correspondant. (Objet de sous-classe de Node ) pour faciliter l'appel de ses méthodes uniques. (Voir la documentation API) L'objet Node fournit les méthodes correspondantes pour obtenir son nœud parent ou son nœud enfant. Grâce à ces méthodes, les programmeurs peuvent lire le contenu de l'intégralité du document XML, ou ajouter, modifier ou supprimer le contenu du XML documenter. PS : Sa sous-interface Element a plus de fonctions. , appelez la méthode DocumentBuilderFactory.newInstance() pour créer la fabrique de l'analyseur DOM. , appelez la méthode newDocumentBuilder() de l'objet DocumentBuilderFactory pour obtenir DOMObjet Parser, qui est l'objet de DocumentBuilder. , appelez DocumentBuilder la méthode parse() d'analyse Document XML, récupérez l'objet Document représentant l'intégralité du document. , via les objets Document et certaines classes et méthodes associées, vers XML Document à exploiter. dans le package Le La classe Transformer est utilisée pour convertir l'objet Document représentant le fichier XML dans un certain format . Pour la sortie, par exemple, appliquez une feuille de style au fichier xml et convertissez-le en un document html. En utilisant cet objet, bien sûr, vous pouvez également réécrire l'objet Document dans un fichier XML. La classe Transformer termine l'opération de transformation via la méthode transform, qui reçoit une source et une destination. On peut associer l'objet à convertir via : javax.xml.transform.dom.DOMSource classe, Utilisez l'objet javax.xml.transform.stream.StreamResult pour représenter la destination des données. L'objet Transformer est obtenu via TransformerFactory. Cas : XML5.xml Ce qui précède est le contenu de la programmation XML-DOM. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) ! Node objet
Obtenez l'analyseur DOMJaxp 🎜 >
1XML
javax.xml.transform<?xml version="1.0" encoding="UTF-8" standalone="no"?><班级 班次="1班" 编号="C1">
<学生 地址="湖南" 学号="n1" 性别="男" 授课方式="面授" 朋友="n2" 班级编号="C1">
<名字>张三</名字>
<年龄>20</年龄>
<介绍>不错</介绍>
</学生>
<学生 学号="n2" 性别="女" 授课方式="面授" 朋友="n1 n3" 班级编号="C1">
<名字>李四</名字>
<年龄>18</年龄>
<介绍>很好</介绍>
</学生>
<学生 学号="n3" 性别="男" 授课方式="面授" 朋友="n2" 班级编号="C1">
<名字>王五</名字>
<年龄>22</年龄>
<介绍>非常好</介绍>
</学生>
<学生 性别="男">
<名字>小明</名字>
<年龄>30</年龄>
<介绍>好</介绍>
</学生>
</班级>
package com.pc;
import java.awt.List;
import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
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;
/**
*
* @author Switch
* @function Java解析XML
*
*/
public class XML5 {
// 使用dom技术对xml文件进行操作
public static void main(String[] args) throws Exception {
// 1.创建一个DocumentBuilderFactory对象
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
.newInstance();
// 2.通过DocumentBuilderFactory,得到一个DocumentBuilder对象
DocumentBuilder documentBuilder = documentBuilderFactory
.newDocumentBuilder();
// 3.指定解析哪个xml文件
Document document = documentBuilder.parse("src/com/pc/XML5.xml");
// 4.对XML文档操作
// System.out.println(document);
// list(document);
// read(document);
// add(document);
// delete(document, "小明");
update(document, "小明", "30");
}
// 更新一个元素(通过名字更新一个学生的年龄)
public static void update(Document doc, String name, String age)
throws Exception {
NodeList nodes = doc.getElementsByTagName("名字");
for (int i = 0; i < nodes.getLength(); i++) {
Element nameE = (Element) nodes.item(i);
if (nameE.getTextContent().equals(name)) {
Node prNode = nameE.getParentNode();
NodeList stuAttributes = prNode.getChildNodes();
for (int j = 0; j < stuAttributes.getLength(); j++) {
Node stuAttribute = stuAttributes.item(j);
if (stuAttribute.getNodeName().equals("年龄")) {
stuAttribute.setTextContent(age);
}
}
}
}
updateToXML(doc);
}
// 删除一个元素(通过名字删除一个学生)
public static void delete(Document doc, String name) throws Exception {
// 找到第一个学生
NodeList nodes = doc.getElementsByTagName("名字");
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
if (node.getTextContent().equals(name)) {
Node prNode = node.getParentNode();
prNode.getParentNode().removeChild(prNode);
}
}
// 更新到XML
updateToXML(doc);
}
// 添加一个学生到XML文件
public static void add(Document doc) throws Exception {
// 创建一个新的学生节点
Element newStu = doc.createElement("学生");
newStu.setAttribute("性别", "男");
Element newStu_name = doc.createElement("名字");
newStu_name.setTextContent("小明");
Element newStu_age = doc.createElement("年龄");
newStu_age.setTextContent("21");
Element newStu_intro = doc.createElement("介绍");
newStu_intro.setTextContent("好");
newStu.appendChild(newStu_name);
newStu.appendChild(newStu_age);
newStu.appendChild(newStu_intro);
// 把新的学生节点添加到根元素
doc.getDocumentElement().appendChild(newStu);
// 更新到XML
updateToXML(doc);
}
// 更新到XML
private static void updateToXML(Document doc)
throws TransformerFactoryConfigurationError,
TransformerConfigurationException, TransformerException {
// 得到TransformerFactory对象
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
// 通过TransformerFactory对象得到一个转换器
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(new DOMSource(doc), new StreamResult(
"src/com/pc/XML5.xml"));
}
// 具体查询某个学生的信息(小时第一个学生的所有)
public static void read(Document doc) {
NodeList nodes = doc.getElementsByTagName("学生");
// 取出第一个学生
Element stu1 = (Element) nodes.item(0);
Element name = (Element) stu1.getElementsByTagName("名字").item(0);
System.out.println("姓名:" + name.getTextContent() + " 性别:"
+ stu1.getAttribute("性别"));
}
// 遍历该XML文件
public static void list(Node node) {
if (node.getNodeType() == node.ELEMENT_NODE) {
System.out.println("名字:" + node.getNodeName());
}
// 取出node的子节点
NodeList nodes = node.getChildNodes();
for (int i = 0; i < nodes.getLength(); i++) {
// 显示所有子节点
Node n = nodes.item(i);
list(n);
}
}
}

Outils d'IA chauds

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.

Undress AI Tool
Images de déshabillage gratuites

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

Les fichiers XML peuvent-ils être ouverts avec PPT ? XML, Extensible Markup Language (Extensible Markup Language), est un langage de balisage universel largement utilisé dans l'échange et le stockage de données. Comparé au HTML, XML est plus flexible et peut définir ses propres balises et structures de données, rendant le stockage et l'échange de données plus pratiques et unifiés. PPT, ou PowerPoint, est un logiciel développé par Microsoft pour créer des présentations. Il fournit un moyen complet de

Convertir des données XML en Python au format CSV XML (ExtensibleMarkupLanguage) est un langage de balisage extensible couramment utilisé pour le stockage et la transmission de données. CSV (CommaSeparatedValues) est un format de fichier texte délimité par des virgules couramment utilisé pour l'importation et l'exportation de données. Lors du traitement des données, il est parfois nécessaire de convertir les données XML au format CSV pour faciliter l'analyse et le traitement. Python est un puissant

Python implémente la conversion entre XML et JSON Introduction : Dans le processus de développement quotidien, nous devons souvent convertir des données entre différents formats. XML et JSON sont des formats d'échange de données courants. En Python, nous pouvons utiliser diverses bibliothèques pour réaliser une conversion mutuelle entre XML et JSON. Cet article présentera plusieurs méthodes couramment utilisées, avec des exemples de code. 1. Pour convertir XML en JSON en Python, nous pouvons utiliser le module xml.etree.ElementTree

Gestion des erreurs et des exceptions dans XML à l'aide de Python XML est un format de données couramment utilisé pour stocker et représenter des données structurées. Lorsque nous utilisons Python pour traiter XML, nous pouvons parfois rencontrer des erreurs et des exceptions. Dans cet article, je vais vous présenter comment utiliser Python pour gérer les erreurs et les exceptions dans XML, et fournir un exemple de code pour référence. Utilisez l'instruction try-sauf pour détecter les erreurs d'analyse XML Lorsque nous utilisons Python pour analyser XML, nous pouvons parfois rencontrer des

Python analyse les caractères spéciaux et les séquences d'échappement en XML XML (eXtensibleMarkupLanguage) est un format d'échange de données couramment utilisé pour transférer et stocker des données entre différents systèmes. Lors du traitement de fichiers XML, vous rencontrez souvent des situations contenant des caractères spéciaux et des séquences d'échappement, qui peuvent provoquer des erreurs d'analyse ou une mauvaise interprétation des données. Par conséquent, lors de l’analyse de fichiers XML à l’aide de Python, nous devons comprendre comment gérer ces caractères spéciaux et ces séquences d’échappement. 1. Caractères spéciaux et

La gestion des formats de données XML et JSON dans le développement C# nécessite des exemples de code spécifiques. Dans le développement de logiciels modernes, XML et JSON sont deux formats de données largement utilisés. XML (Extensible Markup Language) est un langage de balisage permettant de stocker et de transmettre des données, tandis que JSON (JavaScript Object Notation) est un format d'échange de données léger. Dans le développement C#, nous devons souvent traiter et exploiter des données XML et JSON. Cet article se concentrera sur la façon d'utiliser C# pour traiter ces deux formats de données et les attacher.

Utiliser Python pour implémenter la validation des données en XML Introduction : Dans la vraie vie, nous traitons souvent de données diverses, parmi lesquelles XML (Extensible Markup Language) est un format de données couramment utilisé. XML a une bonne lisibilité et évolutivité et est largement utilisé dans divers domaines, tels que l'échange de données, les fichiers de configuration, etc. Lors du traitement de données XML, nous devons souvent vérifier les données pour garantir leur intégrité et leur exactitude. Cet article présentera comment utiliser Python pour implémenter la vérification des données en XML et donnera le correspondant

Comment Python analyse les fichiers XML XML (eXtensibleMarkupLanguage) est un langage de balisage utilisé pour représenter des données structurées. Lors du traitement de données XML, nous devons souvent analyser le fichier XML pour extraire les informations requises. Python fournit de nombreuses bibliothèques et modules pour analyser les fichiers XML, tels que ElementTree, lxml, etc. Cet article explique comment utiliser Python pour analyser des fichiers XML, avec des exemples de code. En Python,
