Heim Java javaLernprogramm Verwenden Sie dom4j, um ein Beispiel für ein XML-Dokument zu analysieren

Verwenden Sie dom4j, um ein Beispiel für ein XML-Dokument zu analysieren

May 29, 2018 pm 05:57 PM
加强 基础


.



使用dom4j解析xml文档
*  1.SAXReader对象(dom4j核心类)
a) read(…) 加载执行xml文档
2. Document对象
a) Element e = getRootElement() 获得根元素
3. Element对象
a) Element [] eleArr = elements(…) 获得指定名称的所有子元素。可以不指定名称
b) element(…) 获得指定名称第一个子元素。可以不指定名称
c) getName() 获得当前元素的元素名
d) attributeValue(…) 获得指定属性名的属性值
e) elementText(…) 获得指定名称子元素的文本值
f) getText() 获得当前元素的文本内容
 操作步骤:
  1.创建dom4j核心对象SAXReader
  2.使用SAXReader中read方法读取xml文档,生成Document对象
  3.使用Document中方法getRootElement获取根元素Element
  4.使用Element中的方法elements获取所有bean元素
  5.遍历包含bean元素的集合,获取每一个bean元素
  6.使用Element中的方法attributeValue获取bean元素上属性的值
  7.使用Element中的方法elements获取所有property元素
  8.遍历包含property元素的集合,获取每一个property元素
9.使用Element中的方法attributeValue获取property元素上属性的值
10.使用Element中的方法getText获取获取property元素上文本值

 1 public class UseDom4jParseXML { 
 2     public static void main(String[] args) throws Exception { 
 3         //1.创建dom4j核心对象SAXReader 
 4         SAXReader sax = new SAXReader(); 
 5         //2.使用SAXReader中read方法读取xml文档,生成Document对象 
 6         Document docu = sax.read("bean.xml"); 
 7         //3.使用Document中方法getRootElement获取根元素Element 
 8         Element rootElement = docu.getRootElement(); 
 9         //4.使用Element中的方法elements获取所有bean元素
 10         List<Element> beanElementList = rootElement.elements();
 11         //5.遍历包含bean元素的集合,获取每一个bean元素
 12         for (Element beanElement : beanElementList) {
 13             String beanName = beanElement.getName();
 14             System.out.println(beanName);
 15             //6.使用Element中的方法attributeValue获取bean元素上属性的值
 16             String idValue = beanElement.attributeValue("id");
 17             System.out.println("\tbean元素的属性id:"+idValue);
 18             String classNameValue = beanElement.attributeValue("className");
 19             System.out.println("\tbean元素的属性className:"+classNameValue);
 20             //7.使用Element中的方法elements获取所有property元素
 21             List<Element> propertyElementList = beanElement.elements();
 22             //8.遍历包含property元素的集合,获取每一个property元素
 23             for (Element propertyElement : propertyElementList) {
 24                 System.out.println("\t\t"+propertyElement.getName());
 25                 //9.使用Element中的方法attributeValue获取property元素上属性的值
 26                 String nameValue = propertyElement.attributeValue("name");
 27                 System.out.println("\t\t\tproperty元素的属性name:"+nameValue);
 28                 String valueValue = propertyElement.attributeValue("value");
 29                 System.out.println("\t\t\tproperty元素的属性value:"+valueValue);
 30                 //10.使用Element中的方法getText获取获取property元素上文本值
 31                 String text = propertyElement.getText();
 32                 System.out.println("\t\t\tproperty元素的文本:"+text);
 33             }
 34         }
 35     }
 36 }
Nach dem Login kopieren

BeanUtils工具类
使用BeanUitls公共,给类中的成员变量注入(赋)值

 1 /*  
 2  * 创建MyBeanUtils工具类,增强populate方法  
 3  */  
 4 public class MyBeanUtils {  
 5     //把构造方法私有,不让外界通过创建对象的方式调用方法  
 6     private MyBeanUtils() {  
 7     }  
 8       
 9     /* 
 10      * 定义一个方法(让用户使用自己定义的populate方法不用处理异常) 
 11      *     1.参数传递JavaBean对象的Class文件对象 
 12      *     2.内部通过反射创建Javabean对象 
 13      *     3.调用BeanUtils工具类的方法populate 
 14      *     4.对populate方法的异常进行try...catch处理 
 15      *     5.把对象返回给用户 
 16      *     6.把参数Class对象增加一个泛型,让用户传递什么类型的JavaBean,就返回什么类型的JavaBean 
 17      * 
 18      * 定义含有泛型的方法:调用方法时确定数据类型 
 19      *         修饰符 <定义泛型> 返回值类型 方法名(参数<使用泛型>){ 
 20      *             方法体 
 21      *         } 
 22      * 
 23      * 
 24      * 方法的参数: 
 25      *         Class clazz 
 26      *         Map<String,String[]> properties 
 27      * 方法的返回值类型: 
 28      *         Object 
 29      */ 
 30     public static <E> E populate03(Class<E> clazz, Map<String,String[]> properties){ 
 31         try { 
 32             //2.内部通过反射创建Javabean对象 
 33             E obj = clazz.newInstance(); 
 34             //3.调用BeanUtils工具类的方法populate 
 35             BeanUtils.populate(obj, properties); 
 36             //5.把对象返回给用户 
 37             return obj; 
 38         } catch (Exception e) { 
 39             //4.对populate方法的异常进行try...catch处理
 40             e.printStackTrace(); 
 41             //把编译异常,转换为运行时异常,给成员变量注入值失败,让程序停止下来 
 42             throw new RuntimeException("注入值失败"); 
 43         } 
 44     } 
 45      
 46     /* 
 47      * 定义一个方法(让用户使用自己定义的populate方法不用处理异常) 
 48      *     1.参数传递JavaBean对象的Class文件对象 
 49      *     2.内部通过反射创建Javabean对象 
 50      *     3.调用BeanUtils工具类的方法populate 
 51      *     4.对populate方法的异常进行try...catch处理 
 52      *     5.把对象返回给用户 
 53      * 
 54      * 方法的参数: 
 55      *         Class clazz 
 56      *         Map<String,String[]> properties 
 57      * 方法的返回值类型: 
 58      *         Object 
 59      */ 
 60     public static Object populate02(Class clazz, Map<String,String[]> properties){ 
 61         try { 
 62             //2.内部通过反射创建Javabean对象 
 63             Object obj = clazz.newInstance(); 
 64             //3.调用BeanUtils工具类的方法populate 
 65             BeanUtils.populate(obj, properties); 
 66             //5.把对象返回给用户 
 67             return obj; 
 68         } catch (Exception e) { 
 69             //4.对populate方法的异常进行try...catch处理 
 70             e.printStackTrace(); 
 71             //把编译异常,转换为运行时异常,给成员变量注入值失败,让程序停止下来 
 72             throw new RuntimeException("注入值失败"); 
 73         } 
 74          
 75     } 
 76      
 77     /* 
 78      * 定义一个方法(让用户使用自己定义的populate方法不用处理异常) 
 79      *     1.调用BeanUtils工具类的方法populate 
 80      *     2.对populate方法的异常进行try...catch处理 
 81      * 
 82      * 方法的参数: 
 83      *         Object bean 
 84      *         Map<String,String[]> properties 
 85      * 方法的返回值类型: 
 86      *         void 
 87      */ 
 88     public static void populate01(Object bean, Map<String,String[]> properties){ 
 89         try { 
 90             //1.调用BeanUtils工具类的方法populate 
 91             BeanUtils.populate(bean, properties); 
 92         } catch (Exception e) { 
 93             //2.对populate方法的异常进行try...catch处理 
 94             e.printStackTrace(); 
 95             //把编译异常,转换为运行时异常,给成员变量注入值失败,让程序停止下来 
 96             throw new RuntimeException("注入值失败"); 
 97         } 
 98     } 
 99 }
 100 package cn.itcast.dmeo03.MyBeanUtils;
 101 
 102 import java.util.HashMap;
 103 import java.util.Map;
 104 
 105 import org.junit.Test;
 106 
 107 import cn.itcast.dmeo01.bean.User;
 108 
 109 /*
 110  * 使用自定义工具类MyBeanUtils
 111  */
 112 public class UseMyBeanUtils {
 113     @Test
 114     public void demo03(){
 115         //创建Map集合,key是String类型,value是String类型的数组
 116         Map<String,String[]> properties = new HashMap<String,String[]>();
 117         properties.put("id", new String[]{"123"});
 118         properties.put("username", new String[]{"root","admin"});
 119         properties.put("password", new String[]{"root","123456"});
 120         properties.put("hobbies", new String[]{"吃","睡","玩","敲代码"});
 121         //调用MyBeanUtils工具类中的方法populate02
 122         User u = MyBeanUtils.populate03(User.class, properties);
 123         System.out.println(u);
 124     }
 125     
 126     @Test
 127     public void demo02(){
 128         //创建Map集合,key是String类型,value是String类型的数组
 129         Map<String,String[]> properties = new HashMap<String,String[]>();
 130         properties.put("id", new String[]{"123"});
 131         properties.put("username", new String[]{"root","admin"});
 132         properties.put("password", new String[]{"root","123456"});
 133         properties.put("hobbies", new String[]{"吃","睡","玩","敲代码"});
 134         //调用MyBeanUtils工具类中的方法populate02
 135         User u = (User) MyBeanUtils.populate02(User.class, properties);
 136         System.out.println(u);
 137     }
 138     
 139     @Test
 140     public void demo01(){
 141         //创建JavaBean对象
 142         User u = new User();
 143         //创建Map集合,key是String类型,value是String类型的数组
 144         Map<String,String[]> properties = new HashMap<String,String[]>();
 145         properties.put("id", new String[]{"123"});
 146         properties.put("username", new String[]{"root","admin"});
 147         properties.put("password", new String[]{"root","123456"});
 148         properties.put("hobbies", new String[]{"吃","睡","玩","敲代码"});
 149         //调用MyBeanUtils工具类中的方法populate01
 150         MyBeanUtils.populate01(u, properties);
 151         System.out.println(u);
 152     }
 153 }
Nach dem Login kopieren
 1 /* 
 2  * 综合案例:XML+dom4j+反射+BeanUtils 
 3  *     1.使用xml存储JavaBean的全类名和属性名属性值 
 4  *     2.使用dom4j解析xml 
 5  *     3.使用反射技术根据解析出的全类名创建JavaBean对象 
 6  *     4.使用BeanUtils中的方法setProperty给成员变量注入值 
 7  */ 
 8 public class UseDom4jparseXMLToJavaBean { 
 9     public static void main(String[] args) throws Exception {
 10         //2.使用dom4j解析xml
 11         //获取dom4j的核心类SAXReader
 12         SAXReader sax = new SAXReader();
 13         //使用SAXReader中的read读取xml,创建Document对象
 14         Document docu = sax.read("src/cn/itcast/dmeo05/domain/data.xml");
 15         //使用Document中的方法getRootElement获取根元素
 16         Element rootElement = docu.getRootElement();
 17         //使用Element中的方法elements获取所有的bean元素,放入集合中
 18         List<Element> beanElementList = rootElement.elements();
 19         //遍历beanElementList集合
 20         for (Element beanElement : beanElementList) {
 21             //获取beanElement上的变的属性className
 22             String className = beanElement.attributeValue("className");
 23             //3.使用反射技术根据解析出的全类名创建JavaBean对象
 24             Class clazz = Class.forName(className);
 25             Object obj = clazz.newInstance();
 26             //使用Element中的方法elements获取所有的property元素,放入集合中
 27             List<Element> propertyElementList = beanElement.elements();
 28             //遍历propertyElementList集合
 29             for (Element propertyElement : propertyElementList) {
 30                 //获取propertyElement上的属性name(属性名)和value(属性值)
 31                 String name = propertyElement.attributeValue("name");
 32                 String value = propertyElement.attributeValue("value");
 33                 //4.使用BeanUtils中的方法setProperty给成员变量注入值
 34                 BeanUtils.setProperty(obj, name, value);
 35             }
 36             //打印JavaBean对象
 37             System.out.println(obj);
 38         }
 39     }
 40 
 41 }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonVerwenden Sie dom4j, um ein Beispiel für ein XML-Dokument zu analysieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was soll ich tun, wenn das Mikrofon in Win10 nach der Verstärkung nicht gezogen werden kann? Was soll ich tun, wenn das Mikrofon in Win10 nach der Verstärkung nicht gezogen werden kann? Jul 05, 2023 pm 06:13 PM

Was soll ich tun, wenn sich das Win10-Mikrofon nicht hochziehen lässt? Viele Freunde verwenden häufig Mikrofone, wenn sie Computer verwenden, und einige Benutzer ziehen häufig nicht am Mikrofon, wenn sie sich darauf vorbereiten, das Mikrofon zu verstärken. Was sollten wir also tun, wenn wir auf diese Situation stoßen? Folgen wir dem Editor, um einen Blick auf die Lösung des Problems zu werfen, dass das Win10-Mikrofon nach der Verstärkung nicht hochgezogen werden kann. Lösung für die Win10-Mikrofonverbesserung, die nicht abgerufen werden kann: 1. Sie können versuchen, den Treiber erneut zu aktualisieren. 2. Klicken Sie bei Systemen über WIN7 mit der rechten Maustaste auf das Aufnahmegerät auf dem kleinen Lautsprecher in der unteren rechten Ecke, um das vorhandene Mikrofon als Standardgerät während der Aufnahme festzulegen. Doppelklicken Sie dann auf das Mikrofon oder klicken Sie in der Ebene auf Eigenschaften, um die Mikrofonlautstärke und die Mikrofonverstärkung anzupassen (dies wird entsprechend angepasst und es ist hilfreich, die Lautstärke zu erhöhen).

PHP-Grundlagen-Tutorial: Vom Anfänger zum Meister PHP-Grundlagen-Tutorial: Vom Anfänger zum Meister Jun 18, 2023 am 09:43 AM

PHP ist eine weit verbreitete serverseitige Open-Source-Skriptsprache, die alle Aufgaben in der Webentwicklung bewältigen kann. PHP wird in der Webentwicklung häufig verwendet, insbesondere wegen seiner hervorragenden Leistung bei der dynamischen Datenverarbeitung, weshalb es von vielen Entwicklern geliebt und verwendet wird. In diesem Artikel erklären wir Ihnen Schritt für Schritt die Grundlagen von PHP, um Anfängern den Einstieg bis zum Erlernen von PHP-Kenntnissen zu erleichtern. 1. Grundlegende Syntax PHP ist eine interpretierte Sprache, deren Code HTML, CSS und JavaScript ähnelt. Jede PHP-Anweisung endet mit einem Semikolon

Lernen Sie die Grundlagen der Go-Sprachvariablen Lernen Sie die Grundlagen der Go-Sprachvariablen Mar 22, 2024 pm 09:39 PM

Die Go-Sprache ist eine von Google entwickelte statisch typisierte, kompilierte Sprache. Ihre prägnanten und effizienten Funktionen haben bei Entwicklern große Aufmerksamkeit und Begeisterung erregt. Beim Erlernen der Go-Sprache ist die Beherrschung der Grundkenntnisse über Variablen ein entscheidender Schritt. In diesem Artikel werden grundlegende Kenntnisse wie die Definition, Zuweisung und Typinferenz von Variablen in der Go-Sprache anhand spezifischer Codebeispiele erläutert, um den Lesern zu helfen, diese Wissenspunkte besser zu verstehen und zu beherrschen. In der Go-Sprache können Sie das Schlüsselwort var verwenden, um eine Variable zu definieren. Dies ist das Format des Variablennamens des Variablentyps var.

Einführung in die PHP-Grundlagen: So verwenden Sie die Echo-Funktion zur Ausgabe von Textinhalten Einführung in die PHP-Grundlagen: So verwenden Sie die Echo-Funktion zur Ausgabe von Textinhalten Jul 30, 2023 pm 05:38 PM

Grundlegende Einführung in PHP: So verwenden Sie die Echo-Funktion zur Ausgabe von Textinhalten. Bei der PHP-Programmierung müssen Sie häufig Textinhalte auf einer Webseite ausgeben. In diesem Fall können Sie die Echo-Funktion verwenden. In diesem Artikel wird die Verwendung der Echo-Funktion zur Ausgabe von Textinhalten vorgestellt und Beispielcode bereitgestellt. Bevor Sie beginnen, stellen Sie zunächst sicher, dass Sie PHP installiert und die Laufumgebung konfiguriert haben. Wenn PHP noch nicht installiert ist, können Sie die neueste stabile Version von der offiziellen PHP-Website (https://www.php.net) herunterladen.

Kann ich Linux von Grund auf lernen? Was muss ich lernen? Kann ich Linux von Grund auf lernen? Was muss ich lernen? Feb 19, 2024 pm 12:57 PM

Wenn Sie in der IT-Branche arbeiten, aber Programmieren lernen möchten, für welche Technologie sollten Sie sich natürlich für den Betrieb und die Wartung von Linux entscheiden? Linux ist eine sehr beliebte Technologie auf dem Markt, mit einem breiten Anwendungsspektrum und guten Beschäftigungsaussichten, die bei vielen Menschen beliebt ist. Die Frage ist also: Kann man den Betrieb und die Wartung von Linux ohne Grundkenntnisse erlernen? Auf dem Servermarkt hat das Linux-System aufgrund seiner Vorteile wie Stabilität, Sicherheit, kostenlose Open Source, Effizienz und Komfort einen Marktanteil von bis zu 80 % Daraus ist ersichtlich, dass Linux-Anwendungen sehr beliebt sind. Ob jetzt oder in Zukunft, das Erlernen von Linux ist eine sehr gute Wahl. Ob es möglich ist, von Grund auf zu lernen? Meine Antwort lautet natürlich. Der Präsenzkurs „Linux“ von Oldboy Education ist speziell für Personen ohne Grundkenntnisse konzipiert

Detaillierte Erläuterung der Funktionen der C-Sprache: grundlegende bis fortgeschrittene, umfassende Analyse der Verwendung von Funktionen Detaillierte Erläuterung der Funktionen der C-Sprache: grundlegende bis fortgeschrittene, umfassende Analyse der Verwendung von Funktionen Feb 18, 2024 pm 02:25 PM

Funktionsenzyklopädie der C-Sprache: Von einfach bis fortgeschritten, ausführliche Erklärung der Verwendung von Funktionen, spezifische Codebeispiele erforderlich Einführung: Die C-Sprache ist eine weit verbreitete Programmiersprache und aufgrund ihrer leistungsstarken Funktionen und Flexibilität die erste Wahl vieler Entwickler. In der C-Sprache ist Funktion ein wichtiges Konzept. Sie kann einen Codeabschnitt zu einem unabhängigen Modul zusammenfassen und so die Wiederverwendbarkeit und Wartbarkeit des Codes verbessern. In diesem Artikel wird die Verwendung von C-Sprachfunktionen von Grund auf vorgestellt und schrittweise weiterentwickelt, um den Lesern dabei zu helfen, die Fähigkeiten des Funktionsschreibens zu erlernen. 1. Definition und Aufruf von Funktionen in C

Verpassen Sie nicht Ihre Chance, jetzt Ihre kostenlose Basic C#-Zertifizierung von Microsoft zu erhalten Verpassen Sie nicht Ihre Chance, jetzt Ihre kostenlose Basic C#-Zertifizierung von Microsoft zu erhalten Sep 01, 2023 pm 12:45 PM

Aufruf an alle C#-Entwickler! Microsoft und die gemeinnützige Organisation freeCodeCamp geben die Einführung einer neuen globalen kostenlosen Basic C#-Zertifizierung bekannt. Diese Zertifizierung soll Entwicklern aller Niveaus dabei helfen, die Grundlagen von C# zu erlernen, einer beliebten Programmiersprache, die zum Erstellen verschiedener Anwendungen verwendet wird. Sie können sie in Ihrem LinkedIn-Profil anzeigen. Diese Zertifizierung umfasst 35 Stunden Microsoft Learn-Schulungen und eine Prüfung mit 80 Fragen, die auf freeCodeCamp gehostet wird. Dieser Kurs behandelt Themen wie Variablen, Datentypen, Kontrollstrukturen und objektorientierte Programmierung. „Unsere Basic C#-Zertifizierung bietet genau das – einen Beweis dafür, dass Sie in der Lage sind, diese Vielseitigkeit zu beherrschen

Verwendung von PHP-Funktionen: von den Grundlagen bis zum Fortgeschrittenen Verwendung von PHP-Funktionen: von den Grundlagen bis zum Fortgeschrittenen Jun 15, 2023 pm 11:11 PM

PHP ist eine weit verbreitete serverseitige Skriptsprache zur Entwicklung dynamischer Websites, Webanwendungen und anderer Internetdienste. Bei der Entwicklung von PHP-Anwendungen kann die Verwendung von Funktionen dazu beitragen, den Code zu vereinfachen, die Wiederverwendbarkeit des Codes zu verbessern und die Entwicklungskosten zu senken. In diesem Artikel werden die grundlegende Verwendung und die erweiterte Verwendung von PHP-Funktionen vorgestellt. 1. Grundlegende Verwendung von PHP-Funktionen 1. Funktionen definieren Verwenden Sie in PHP das Schlüsselwort function, um Funktionen zu definieren, zum Beispiel: functiongreet($name){

See all articles