使用dom4j解析xml文档实例
.
使用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 }
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 }
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 }
Atas ialah kandungan terperinci 使用dom4j解析xml文档实例. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Apakah yang perlu saya lakukan jika mikrofon Win10 tidak boleh ditarik ke atas? Ramai rakan sering menggunakan mikrofon apabila menggunakan komputer, dan sesetengah pengguna sering gagal menarik mikrofon apabila bersiap untuk menguatkan mikrofon Jadi apa yang perlu kita lakukan apabila kita menghadapi situasi ini? Mari ikuti editor untuk melihat penyelesaian kepada masalah bahawa mikrofon Win10 tidak boleh ditarik ke atas selepas diperkukuh. Penyelesaian untuk Peningkatan Mikrofon Win10 Tidak Dapat Ditarik: 1. Anda boleh cuba mengemas kini pemacu sekali lagi. 2. Untuk sistem di atas WIN7, klik kanan peranti rakaman pada pembesar suara kecil di penjuru kanan sebelah bawah untuk menetapkan mikrofon sedia ada sebagai peranti lalai semasa rakaman. Kemudian klik dua kali mikrofon atau klik Properties dalam tahap untuk melaraskan kelantangan mikrofon dan peningkatan mikrofon (ini dilaraskan dengan sewajarnya, dan ia akan membantu untuk meningkatkan kelantangan

PHP ialah bahasa skrip sebelah pelayan sumber terbuka yang digunakan secara meluas yang boleh mengendalikan semua tugas dalam pembangunan web. PHP digunakan secara meluas dalam pembangunan web, terutamanya untuk prestasi cemerlangnya dalam pemprosesan data dinamik, jadi ia disukai dan digunakan oleh ramai pembangun. Dalam artikel ini, kami akan menerangkan asas PHP langkah demi langkah untuk membantu pemula daripada mula menjadi mahir. 1. Sintaks asas PHP ialah bahasa yang ditafsirkan yang kodnya serupa dengan HTML, CSS dan JavaScript. Setiap penyata PHP berakhir dengan koma bertitik;

Bahasa Go ialah bahasa yang disusun secara statik yang dibangunkan oleh Google Cirinya yang ringkas dan cekap telah menarik perhatian dan kasih sayang yang meluas daripada pembangun. Dalam proses pembelajaran bahasa Go, menguasai pengetahuan asas pembolehubah adalah langkah yang penting. Artikel ini akan menerangkan pengetahuan asas seperti definisi, tugasan dan inferens jenis pembolehubah dalam bahasa Go melalui contoh kod khusus untuk membantu pembaca lebih memahami dan menguasai mata pengetahuan ini. Dalam bahasa Go, anda boleh menggunakan kata kunci var untuk menentukan pembolehubah, iaitu format nama pembolehubah var dan jenis pembolehubah.

Pengenalan asas kepada PHP: Cara menggunakan fungsi gema untuk mengeluarkan kandungan teks Dalam pengaturcaraan PHP, anda selalunya perlu mengeluarkan beberapa kandungan teks ke halaman web Dalam kes ini, anda boleh menggunakan fungsi gema. Artikel ini akan memperkenalkan cara menggunakan fungsi gema untuk mengeluarkan kandungan teks dan menyediakan beberapa kod sampel. Sebelum memulakan, pastikan anda telah memasang PHP dan mengkonfigurasi persekitaran berjalan. Jika PHP belum dipasang, anda boleh memuat turun versi stabil terkini dari laman web rasmi PHP (https://www.php.net).

Jika anda ingin bekerja dalam industri IT, tetapi adakah anda ingin belajar pengaturcaraan, teknologi mana yang harus anda pilih? Sudah tentu ia adalah operasi dan penyelenggaraan Linux. Linux ialah teknologi yang sangat popular di pasaran, dengan pelbagai aplikasi dan prospek pekerjaan yang baik, dan disukai oleh ramai orang. Jadi persoalannya, bolehkah saya mempelajari operasi dan penyelenggaraan Linux dengan pengetahuan asas sifar Dalam pasaran pelayan, sistem Linux mempunyai bahagian pasaran sehingga 80% kerana kelebihannya seperti kestabilan, keselamatan, sumber terbuka percuma, kecekapan dan kemudahan? . Daripada ini, dapat dilihat bahawa aplikasi Linux sangat popular. Sama ada sekarang atau pada masa hadapan, mempelajari Linux adalah pilihan yang sangat baik. Sama ada boleh belajar dari awal? Kelas bersemuka Oldboy Education Linux direka khas untuk orang yang tidak mempunyai pengetahuan asas

Ensiklopedia fungsi bahasa C: daripada asas kepada lanjutan, penerangan terperinci tentang cara menggunakan fungsi, contoh kod khusus diperlukan Pengenalan: Bahasa C ialah bahasa pengaturcaraan yang digunakan secara meluas, dan fungsi dan fleksibilitinya yang berkuasa menjadikannya pilihan pertama banyak pembangun. Dalam bahasa C, fungsi ialah konsep penting Ia boleh menggabungkan sekeping kod ke dalam modul bebas, meningkatkan kebolehgunaan semula dan kebolehselenggaraan kod. Artikel ini akan memperkenalkan penggunaan fungsi bahasa C dari asas dan secara beransur-ansur maju untuk membantu pembaca menguasai kemahiran menulis fungsi. 1. Definisi dan panggilan fungsi dalam C

Memanggil semua pembangun C#! Microsoft dan organisasi bukan untung freeCodeCamp mengumumkan pelancaran pensijilan Asas C# percuma global baharu. Pensijilan ini direka bentuk untuk membantu pembangun dari semua peringkat mempelajari asas C#, bahasa pengaturcaraan popular yang digunakan untuk mencipta pelbagai aplikasi dan anda boleh memaparkannya dalam profil LinkedIn anda. Pensijilan ini termasuk 35 jam kursus latihan Microsoft Learn dan peperiksaan 80 soalan yang dihoskan di freeCodeCamp. Kursus ini merangkumi topik seperti pembolehubah, jenis data, struktur kawalan, dan pengaturcaraan berorientasikan objek. “Pensijilan C# Asas kami menyediakan perkara itu – bukti keupayaan anda untuk menguasai serba boleh ini

PHP ialah bahasa skrip bahagian pelayan yang digunakan secara meluas untuk membangunkan laman web dinamik, aplikasi web dan perkhidmatan Internet yang lain. Dalam proses membangunkan aplikasi PHP, menggunakan fungsi boleh membantu memudahkan kod, meningkatkan kebolehgunaan semula kod dan mengurangkan kos pembangunan. Artikel ini akan memperkenalkan penggunaan asas dan penggunaan lanjutan fungsi PHP. 1. Penggunaan asas fungsi PHP 1. Tentukan fungsi Dalam PHP, gunakan kata kunci fungsi untuk mentakrifkan fungsi, contohnya: functiongreet($name){
