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 }
위 내용은 dom4j를 사용하여 XML 문서 예제 구문 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









Win10 마이크를 끌어올릴 수 없으면 어떻게 해야 합니까? 많은 친구들이 컴퓨터를 사용할 때 마이크를 사용하는 경우가 많고, 일부 사용자는 마이크 강화를 준비할 때 마이크를 당기지 못하는 경우가 많습니다. 그렇다면 이런 상황이 발생하면 어떻게 해야 할까요? Win10 마이크를 강화한 후 끌어올릴 수 없는 문제에 대한 해결 방법을 편집기를 따라 살펴보겠습니다. Win10 마이크 향상에 대한 해결 방법을 풀 수 없습니다. 1. 드라이버 업데이트를 다시 시도할 수 있습니다. 2. WIN7 이상의 시스템에서는 오른쪽 하단의 작은 스피커에 있는 녹음 장치를 마우스 오른쪽 버튼으로 클릭하면 녹음 시 기존 마이크를 기본 장치로 설정할 수 있습니다. 그런 다음 마이크를 두 번 클릭하거나 레벨에서 속성을 클릭하여 마이크 볼륨 및 마이크 향상을 조정합니다(이는 적절하게 조정되며 볼륨을 높이는 데 도움이 됩니다).

PHP는 웹 개발의 모든 작업을 처리할 수 있는 널리 사용되는 오픈 소스 서버 측 스크립팅 언어입니다. PHP는 웹 개발에 널리 사용되며, 특히 동적 데이터 처리에 뛰어난 성능을 발휘하여 많은 개발자들에게 사랑받고 사용되고 있습니다. 이 기사에서는 초보자가 시작부터 능숙해질 수 있도록 PHP의 기본 사항을 단계별로 설명합니다. 1. 기본 구문 PHP는 코드가 HTML, CSS 및 JavaScript와 유사한 해석 언어입니다. 모든 PHP 문은 세미콜론으로 끝납니다.

Go 언어는 Google이 개발한 정적으로 유형이 지정되고 컴파일되는 언어로, 간결하고 효율적인 기능으로 인해 개발자들의 광범위한 관심과 사랑을 받았습니다. Go 언어를 학습하는 과정에서 변수에 대한 기본 지식을 익히는 것은 중요한 단계입니다. 이 글에서는 Go 언어의 변수 정의, 할당, 유형 추론 등의 기본 지식을 구체적인 코드 예제를 통해 설명하여 독자가 이러한 지식 포인트를 더 잘 이해하고 숙달할 수 있도록 돕습니다. Go 언어에서는 var 키워드를 사용하여 var 변수 이름 변수 유형의 형식인 변수를 정의할 수 있습니다.

PHP 기본 소개: 에코 함수를 사용하여 텍스트 내용을 출력하는 방법 PHP 프로그래밍에서는 일부 텍스트 내용을 웹 페이지에 출력해야 하는 경우가 많습니다. 이 기사에서는 echo 함수를 사용하여 텍스트 콘텐츠를 출력하는 방법을 소개하고 일부 샘플 코드를 제공합니다. 시작하기 전에 먼저 PHP를 설치하고 실행 환경을 구성했는지 확인하세요. 아직 PHP가 설치되지 않은 경우, PHP 공식 홈페이지(https://www.php.net)에서 최신 안정 버전을 다운로드 받으실 수 있습니다.

IT업계에 취업하고 싶지만 프로그래밍을 배우고 싶다면 어떤 기술을 선택해야 할까요? 당연히 리눅스 운영과 유지보수겠죠? Linux는 광범위한 응용 프로그램과 좋은 고용 전망을 제공하여 시장에서 매우 인기 있는 기술이며 많은 사람들이 선호합니다. 그렇다면 질문은, 기본 지식 없이도 리눅스 운영과 유지 관리를 배울 수 있느냐는 것입니다. 서버 시장에서 리눅스 시스템은 안정성, 보안성, 무료 오픈 소스, 효율성, 편의성 등의 장점으로 인해 최대 80%의 시장 점유율을 차지하고 있습니다. . 이것으로부터 Linux 애플리케이션이 매우 널리 사용된다는 것을 알 수 있습니다. 지금이든 미래이든 Linux를 배우는 것은 매우 좋은 선택입니다. 처음부터 배울 수 있는지에 대해서는 당연히 내 대답은 다음과 같습니다. 올드보이 교육 리눅스 대면 수업은 기초 지식이 전혀 없는 사람들을 위해 특별히 고안되었습니다.

C 언어 함수 백과사전: 기본부터 고급까지, 함수 사용 방법에 대한 자세한 설명, 구체적인 코드 예제가 필요합니다. 소개: C 언어는 널리 사용되는 프로그래밍 언어이며 강력한 기능과 유연성으로 인해 많은 개발자가 첫 번째로 선택합니다. C 언어에서 함수는 코드 조각을 독립적인 모듈로 결합하여 코드의 재사용성과 유지 관리성을 향상시키는 중요한 개념입니다. 이 글에서는 C 언어 함수의 사용법을 기초부터 소개하고 점차적으로 발전시켜 독자들이 함수 작성 기술을 익히는 데 도움을 줄 것입니다. 1. C에서 함수 정의 및 호출

모든 C# 개발자에게 전화하세요! Microsoft와 비영리 단체인 freeCodeCamp는 새로운 글로벌 무료 Basic C# 인증 출시를 발표했습니다. 이 인증은 모든 수준의 개발자가 다양한 응용 프로그램을 만드는 데 사용되는 널리 사용되는 프로그래밍 언어인 C#의 기본 사항을 배울 수 있도록 고안되었으며 이를 LinkedIn 프로필에 표시할 수 있습니다. 이 인증에는 35시간의 Microsoft Learn 교육 과정과 freeCodeCamp에서 호스팅되는 80개의 질문으로 구성된 시험이 포함되어 있습니다. 이 과정에서는 변수, 데이터 유형, 제어 구조 및 객체 지향 프로그래밍과 같은 주제를 다룹니다. “우리의 Basic C# 인증은 바로 이러한 다재다능한 기능을 마스터할 수 있는 능력을 증명하는 것입니다.

PHP는 동적 웹사이트, 웹 애플리케이션 및 기타 인터넷 서비스를 개발하는 데 널리 사용되는 서버측 스크립팅 언어입니다. PHP 애플리케이션을 개발하는 과정에서 함수를 사용하면 코드를 단순화하고 코드 재사용성을 향상시키며 개발 비용을 줄이는 데 도움이 될 수 있습니다. 이 글에서는 PHP 함수의 기본 사용법과 고급 사용법을 소개합니다. 1. PHP 함수의 기본 사용법 1. 함수 정의 PHP에서는 function 키워드를 사용하여 함수를 정의합니다. 예: functiongreet($name){
