article Annuaire
- L'introduction de 1 dom4j
- 2 Utilisation dom4j pour un fonctionnement xml de requête
- 3 Utilisez noeuds dom4j add pour atteindre à la fin
- 4 dom4j mis en oeuvre en utilisant un élément supplémentaire dans une position spécifique
- 6 en utilisant l'opération de noeud modifiée en œuvre dom4j
- 7 Utilisation dom4j réalisent l'opération de suppression de nœud
- 8 dom4j mis en oeuvre en utilisant des valeurs d'attribut de l'opération acquise
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"));
}