XML学习总结——SAXReader解析xml文件,实现反射 代码实例

简介: XML学习总结——SAXReader解析xml文件,实现反射 代码实例

XML文件


<?xml version="1.0" encoding="UTF-8" ?> 
- <web-app xmlns="http://www.example.org/web-app_2_5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/web-app_2_5 web-app_2_5.xsd" version="2.5">
- <servlet>
  <servlet-name>MyServlet1</servlet-name> 
  <servlet-class>cn.itheima.web.servlet1.MyServlet1</servlet-class> 
  </servlet>
- <servlet-mapping>
  <servlet-name>MyServlet1</servlet-name> 
  <url-pattern>/myServlet1</url-pattern> 
  </servlet-mapping>
- <servlet>
  <servlet-name>MyServlet2</servlet-name> 
  <servlet-class>cn.itheima.web.servlet1.MyServlet2</servlet-class> 
  </servlet>
- <servlet-mapping>
  <servlet-name>MyServlet2</servlet-name> 
  <url-pattern>/myServlet2</url-pattern> 
  </servlet-mapping>
  </web-app>


接口


public interface IMyServlet {
  public void init();
  public void service();
  public void destory();
}


接口的一个实现类Myservlet1


public class MyServlet1 implements IMyServlet{
  @Override
  public void init() {
    System.out.println("MyServlet1诞生了……");
  }
  @Override
  public void service() {
    System.out.println("MyServlet1开始服务了……");
  }
  @Override
  public void destory() {
    System.out.println("MyServlet1销毁了……");
  }
}


接口的另一个实现类Myservlet2


public class MyServlet2 implements IMyServlet{
  @Override
  public void init() {
    System.out.println("MyServlet2诞生了……");
  }
  @Override
  public void service() {
    System.out.println("MyServlet2开始服务了……");
  }
  @Override
  public void destory() {
    System.out.println("MyServlet2销毁了……");
  }
}


Junit测试类


@Test
  public void testMyServlet(){
    try {
      //1.创建解析器对象
      SAXReader saxReader = new SAXReader();
      //2.使用解析器加载web.xml文件得到document对象
      Document document = saxReader.read("src/cn/itheima/web/servlet1/web.xml");
      //3.获取根元素节点
      Element rootElement = document.getRootElement();
      //4.根据元素名称获取子元素节点
      Element servletElement = rootElement.element("servlet");
      //5.根据元素名称获取servlet-class的文本节点
      String servletClass = servletElement.element("servlet-class").getText();
      //System.out.println(servletClass);
      //6.通过类全名获取字节码文件
      Class clazz = Class.forName(servletClass);
      //7.创建实例对象
      MyServlet1 my = (MyServlet1) clazz.newInstance();
      //8.调用实例对象里面的方法
      my.init();
      my.service();
      my.destory();
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
目录
相关文章
|
算法 PyTorch 算法框架/工具
昇腾 msmodelslim w8a8量化代码解析
msmodelslim w8a8量化算法原理和代码解析
1321 5
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
3215 1
|
8月前
|
XML 数据采集 API
用Lxml高效解析XML格式数据:以天气API为例
免费Python教程:实战解析中国天气网XML数据,详解Lxml库高效解析技巧、XPath用法、流式处理大文件及IP封禁应对策略,助你构建稳定数据采集系统。
423 0
|
搜索推荐 UED Python
实现一个带有昼夜背景切换的动态时钟:从代码到功能解析
本文介绍了一个使用Python和Tkinter库实现的动态时钟程序,具有昼夜背景切换、指针颜色随机变化及整点和半点报时功能。通过设置不同的背景颜色和随机变换指针颜色,增强视觉吸引力;利用多线程技术确保音频播放不影响主程序运行。该程序结合了Tkinter、Pygame、Pytz等库,提供了一个美观且实用的时间显示工具。欢迎点赞、关注、转发、收藏!
678 94
|
域名解析 存储 缓存
深入学习 DNS 域名解析
在平时工作中相信大家都离不开 DNS 解析,因为 DNS 解析是互联网访问的第一步,无论是使用笔记本浏览器访问网络还是打开手机APP的时候,访问网络资源的第一步必然要经过DNS解析流程。
1550 31
|
人工智能 文字识别 自然语言处理
保单AI识别技术及代码示例解析
车险保单包含基础信息、车辆信息、人员信息、保险条款及特别约定等关键内容。AI识别技术通过OCR、文档结构化解析和数据校验,实现对保单信息的精准提取。然而,版式多样性、信息复杂性、图像质量和法律术语解析是主要挑战。Python代码示例展示了如何使用PaddleOCR进行保单信息抽取,并提出了定制化训练、版式分析等优化方向。典型应用场景包括智能录入、快速核保、理赔自动化等。未来将向多模态融合、自适应学习和跨区域兼容性发展。
1146 29
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
596 15
|
传感器 监控 Java
Java代码结构解析:类、方法、主函数(1分钟解剖室)
### Java代码结构简介 掌握Java代码结构如同拥有程序世界的建筑蓝图,类、方法和主函数构成“黄金三角”。类是独立的容器,承载成员变量和方法;方法实现特定功能,参数控制输入环境;主函数是程序入口。常见错误包括类名与文件名不匹配、忘记static修饰符和花括号未闭合。通过实战案例学习电商系统、游戏角色控制和物联网设备监控,理解类的作用、方法类型和主函数任务,避免典型错误,逐步提升编程能力。 **脑图速记法**:类如太空站,方法即舱段;main是发射台,static不能换;文件名对仗,括号要成双;参数是坐标,void不返航。
610 5
|
Serverless 对象存储 人工智能
智能文件解析:体验阿里云多模态信息提取解决方案
在当今数据驱动的时代,信息的获取和处理效率直接影响着企业决策的速度和质量。然而,面对日益多样化的文件格式(文本、图像、音频、视频),传统的处理方法显然已经无法满足需求。
567 4
智能文件解析:体验阿里云多模态信息提取解决方案
|
Java API 数据处理
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
923 4

推荐镜像

更多
  • DNS