00 04Java XML de développement Web de la dom4j analytique

L'introduction de 1 dom4j

dom4j est une organisation pour l'analyse XML, fournissant l'analyseur dom4j.

dom4j ne fait pas partie de JavaSE, vous souhaitez utiliser:
La première étape que vous devez dom4j importation fourni paquet jar

obtenir le document
public class SAXReader extends java.lang.Object

SAXReader reader = new SAXReader();
Document document = reader.read(url);

Interface de document est le parent Noeud
| - Si vous ne voulez pas dans la méthode de document qui, à l' intérieur trouver nœud.

méthode description
publique Élément getRootElement () Obtient le noeud racine, l'élément de retour

L'élément est une interface, l'interface est le noeud parent

méthode description
publique Élément getParent () Obtenez le nœud parent
publique Élément addElement Ajouter des balises
Élément élément public (qName) Récupère l'étiquette après le premier sous-label, qName fait référence à la balise nom
éléments publics sur la Liste (qName) Rapporte tous ci-dessous enfant de la balise (un), qName fait référence à la balise nom
éléments Liste publique () Il récupère toutes les balises sous-étiquette ci-dessous (un)

2 Utilisation dom4j pour un fonctionnement xml de requête

<?xml version="1.0" encoding="UTF-8"?>

<person> 
  <p1 id1="love"> 
    <name>lks</name>  
    <age>30</age>  
  </p1>  
  <p1> 
    <name>hhy</name>  
    <age>20</age> 
  </p1> 
</person>

Interrogez la valeur de tous les éléments de nom à l' intérieur.
(1) créer l'analyseur.
(2) à envoyer un document
(. 3) pour donner le noeud racine
étiquettes (4) obtenir toutes les p1: méthode des éléments d' utilisation (qName) renvoie une liste de tous les collection, puis parcourir une liste de donner à chacun des p1.
(5) pour donner le nom: Méthode élément d' exécution (qName) à p1, retourne l'élément
obtenu à l' intérieur de la valeur du nom (6.): Méthode getText () pour obtenir la valeur

public static void allName() throws Exception{
		SAXReader saxReader = new SAXReader();
		Document document = saxReader.read("src/dom4jlearn/person.xml");
		Element root = document.getRootElement();
		List<Element> p1 = root.elements("p1");
		for(Element e : p1) {
			Element name = e.element("name");
			String str = name.getText();
			System.out.println(str);
		}
	}

La première requête de la valeur de l'élément de nom.
(1) créer l'analyseur.
(2) à envoyer un document
(. 3) pour donner le noeud racine
(4) pour donner p1 un premier élément
(5) afin de donner à l'élément de nom de p1 suivant
(6) pour donner la valeur de l'élément de nom à l' intérieur

public static void getFirstName() throws Exception{
		SAXReader saxReader = new SAXReader();
		Document document = saxReader.read("src/dom4jlearn/person.xml");
		Element root = document.getRootElement();
		Element p1 = root.element("p1");
		Element name = p1.element("name");
		System.out.println(name.getText());
	}

La deuxième valeur de requête de l'élément de nom.
(1) créer l'analyseur.
(2) à envoyer un document
(. 3) pour donner le noeud racine
(4) donner tout l'élément de p1
(5) pour donner une seconde traverse p1
(. 6) pour donner le deuxième élément de nom de p1 suivante
pour donner la valeur de l'élément de nom à l' intérieur (7)

public static void getSecondName()throws Exception{
		SAXReader saxReader = new SAXReader();
		Document document = saxReader.read("src/dom4jlearn/person.xml");
		Element root = document.getRootElement();
		List<Element> p1 = root.elements("p1");
		Element name = p1.get(1).element("name");
		System.out.println(name.getText());
	}

3 Utilisez noeuds dom4j add pour atteindre à la fin

Ajouter un élément à la fin de la première étiquette p1 <sex>女</sex>.
(1) créer l'analyseur.
(2) pour donner un document
(3.) Pour donner le noeud racine
(4) pour obtenir un premier p1: Méthode élément Utilisation ()
(5) de l' élément p1 additif dans ce qui suit: Utilisation méthode retourne p1.addElement ( « sex ») d' un élément
(6) après la fin de l'élément à ajouter le texte suivant: utiliser la méthode setText ( "text") sur le sexe
(7) Retour à écrire xml: Format (OutputFormat), en utilisant createPrettyPrint (), l' utilisation XMLWriter, directe nouvelle, biographie deux paramètres, le premier paramètre est chemin XML, le second paramètre est la valeur du type de format. Après avoir utilisé write () write-back

public static void addSex() throws Exception{
		SAXReader saxReader = new SAXReader();
		Document document = saxReader.read("src/dom4jlearn/person.xml");
		Element root = document.getRootElement();
		Element p1 = root.element("p1");
		Element sex = p1.addElement("sex");
		sex.setText("女");
		OutputFormat format = OutputFormat.createPrettyPrint();
		XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/dom4jlearn/person.xml"), format);
		xmlWriter.write(document);
	}
	

4 dom4j mis en oeuvre en utilisant un élément supplémentaire dans une position spécifique

Ajouter avant la première p1 ci - dessous l' étiquette d'âge <school>fjut</school>
(1) pour créer un analyseur.
(2) pour donner un document
(3.) Pour donner le noeud racine
(4) l' acquisition de la première P1
(5). Obtenir tous les éléments p1: éléments () retourne une collection de Liste
Procédé (6) Liste intérieur add (int index, élément E), ajouter dans un élément de localisation spécifique
| - créer des éléments à l' aide DocumentHelper.createElement (), créer un texte ci - dessous.
(7) de ré-écriture xml


```java
public static void addSchool() throws Exception{
		SAXReader saxReader = new SAXReader();
		Document document = saxReader.read(PATH);
		Element root = document.getRootElement();
		Element p1 = root.element("p1");
		List<Element> list = p1.elements();
		Element school = DocumentHelper.createElement("school");
		school.setText("fjut");
		list.add(1, school);
		OutputFormat format = OutputFormat.createPrettyPrint();
		XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(PATH), format);
		xmlWriter.write(document);
	}

# 5 dom4j里面封装方法的操作
可以对得到document的操作和回写xml操作,封装成方法,也可以把传递的文件路径,封装成一个常量,好处是可以提高开发速度,可以提高代码可维护性。 
1、返回document:public static Document getDocument(String path)
2、回写xml:public static void xmlWriters(String path, Document document);

```java
public final static String PATH = "src/dom4jlearn/person.xml";
	
	public static Document getDocument() {
		SAXReader saxReader = new SAXReader();
		try {
			Document document = saxReader.read(PATH);
			return document;
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return null;
	}
	
	public static void xmlWriters(Document document) {
		
		try {
			OutputFormat format = OutputFormat.createPrettyPrint();
			XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(PATH), format);
			xmlWriter.write(document);
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

6 en utilisant l'opération de noeud modifiée en œuvre dom4j

Modifier la première valeur de p1 age éléments suivants <age>30</age>
(1) pour donner le document
(2) pour donner p1 un premier élément
(3) pour obtenir un premier âge inférieur à p1
(. 4) pour modifier la valeur de 30
(5) writeback xml

public static void modifyAge() {
		Document document = Dom4jUtils.getDocument();
		
		Element root = document.getRootElement();
		Element p1 = root.element("p1");
		Element age = p1.element("age");
		age.setText("300");
		
		Dom4jUtils.xmlWriters(document);
	}

7 Utilisation dom4j réalisent l'opération de suppression de nœud

Remove p1 est sous <school>fjut</school>
(1) pour donner le document
(2) en obtenant le noeud racine
(3) obtenir une première étiquette p1
(4) obtenu dans le premier élément école p1
(. 5) en utilisant l'élément de l' école de suppression de p1
(6) xml écrire retour

public static void removeSchool() {
		Document document = getDocument();
		
		Element root = document.getRootElement();
		Element p1 = root.element("p1");
		Element school = p1.element("school");
		p1.remove(school);
		
		xmlWriters(document);
	}

8 dom4j mis en oeuvre en utilisant des valeurs d'attribut de l'opération acquise

L' obtention d' une première valeur de l'attribut à l' intérieur id1 p1.
(1) pour donner le document
(2) en obtenant le noeud racine
(3) l' obtention d' un premier élément de p1
(4) obtenant une valeur de propriété du premier élément p1, public String attributeValue (attribut String) ;

public static void getAttribute() {
		Document document = getDocument();
		
		Element root = document.getRootElement();
		Element p1 = root.element("p1");
		System.out.println(p1.attributeValue("id1"));
	}
Publié 77 articles originaux · a gagné les éloges 11 · vues 2629

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43762330/article/details/104533554
conseillé
Classement