读取XML文件,创建对象

config.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans>
  3. <!-- Cat类是个内部类 -->
  4. <bean id="id1" class="ahjava.p07reflect.Cat">
  5. <property name="username" value="英短" />
  6. </bean>
  7. </beans>
  1. import java.io.*;
  2. import java.lang.reflect.Constructor;
  3. import javax.xml.parsers.DocumentBuilder;
  4. import javax.xml.parsers.DocumentBuilderFactory;
  5. import org.w3c.dom.Document;
  6. import org.w3c.dom.Element;
  7. import org.w3c.dom.Node;
  8. import org.w3c.dom.NodeList;
  9. public class T35读取XML构造对象 {
  10. private static void get构造方法(String className, String pa1) throws Exception {
  11. Class<?> c = Class.forName(className);
  12. // 获取构造
  13. Constructor<?> constr = c.getConstructor(String.class);
  14. // 实例化对象
  15. Object o = constr.newInstance(pa1);
  16. System.out.println(o);
  17. }
  18. public static void main(String args[]) {
  19. /**
  20. * 解析XML文件
  21. */
  22. Element element = null;
  23. // 可以使用绝对路劲
  24. File f = new File("src/ahjava/config.xml");
  25. // documentBuilder为抽象不能直接实例化(将XML文件转换为DOM文件)
  26. DocumentBuilder db = null;
  27. DocumentBuilderFactory dbf = null;
  28. try {
  29. dbf = DocumentBuilderFactory.newInstance();
  30. db = dbf.newDocumentBuilder();
  31. Document dt = db.parse(f);// 得到一个DOM
  32. element = dt.getDocumentElement();
  33. String nodeName = element.getNodeName();
  34. System.out.println("根元素:" + nodeName);
  35. // 根元素下的所有子节点
  36. NodeList childNodes = element.getChildNodes();
  37. // 遍历这些子节点
  38. for (int i = 0; i < childNodes.getLength(); i++) {
  39. // 获得每个对应位置i的结点
  40. Node node1 = childNodes.item(i);
  41. if ("bean".equals(node1.getNodeName())) {
  42. String sClass = node1.getAttributes().getNamedItem("class").getNodeValue();
  43. System.out.println(sClass);
  44. // 获得<Accounts>下的节点
  45. NodeList nodeDetail = node1.getChildNodes();
  46. // 遍历<Accounts>下的节点
  47. for (int j = 0; j < nodeDetail.getLength(); j++) {
  48. // 获得<Accounts>元素每一个节点
  49. Node detail = nodeDetail.item(j);
  50. if ("property".equals(detail.getNodeName())) {
  51. String sV = detail.getAttributes().getNamedItem("value").getNodeValue();
  52. System.out.println("property: " + sV);
  53. get构造方法(sClass, sV);
  54. }
  55. }
  56. }
  57. }
  58. } catch (Exception e) {
  59. e.printStackTrace();
  60. }
  61. }
  62. }
  1. 根元素:beans
  2. ahjava.p07reflect.Cat
  3. property: 英短
  4. Cat构造:英短
  5. ahjava.p07reflect.Cat@5ca881b5

Java反射——读取XML文件,创建对象的更多相关文章

  1. java Domj4读取xml文件

    先概括,再以代码形式给出. 获取节点: Iterator  Element.nodeIterator();  //获取当前标签节点下的所有子节点 获取 标签: Element Document.get ...

  2. java Domj4读取xml文件加强训练案例

    需求:给出一段xml文件.要求按照鸳鸯输出. xml文件代码如下: <?xml version="1.0" encoding="utf-8"?> & ...

  3. Java如何读取XML文件 具体实现

    转载自:http://www.jb51.net/article/44338.htm import java.io.*; import javax.xml.parsers.DocumentBuilder ...

  4. Java获取路径方法&相对路径读取xml文件方法

    (1).request.getRealPath("/");//不推荐使用获取工程的根路径 (2).request.getRealPath(request.getRequestURI ...

  5. JAVA读取XML文件数据

    XML文档内容如下: <?xml version="1.0" encoding="UTF-8"?> <root> <field t ...

  6. java 读取XML文件作为配置文件

    首先,贴上自己的实例: XML文件:NewFile.xml(该文件与src目录同级) <?xml version="1.0" encoding="UTF-8&quo ...

  7. java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .

    背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...

  8. 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)

    原文:分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要) XML文件 <?xml version="1.0"?> <student ...

  9. java读取XML文件的四种方式

    java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...

随机推荐

  1. dcoker 搭建单节点redis

    1.安装docker 1.检查内核版本,必须是3.10及以上 [root@localhost ~]# uname -r 2.安装docker [root@localhost ~]# yum insta ...

  2. 华为云FusionInsight MRS:助力企业构建“一企一湖,一城一湖”

    摘要:华为云FusionInsight MRS新一代的数据湖,让大数据越用越快.越用越易.越用越稳.越用越省!让数据价值近在眼前! 10月30日,以"携手共赢·数创未来"为主题的第 ...

  3. [Luogu P3959] 宝藏 (状压DP+枚举子集)

    题面 传送门:https://www.luogu.org/problemnew/show/P3959 Solution 这道题的是一道很巧妙的状压DP题. 首先,看到数据范围,应该状压DP没错了. 根 ...

  4. 关于appium

    一.特点 1.appium是开源的移动端自动化测试框架: 2.appium可以测试原生的.混合的.以及移动端的web项目: "移动原生应用"是指那些用iOS或者 Android S ...

  5. MySQL免安装图文教程 (ZIP压缩包)

    目录 一.官网下载ZIP格式安装包 二.安装MySQL 1.下载后先解压到目录 2.设置环境变量 3.在下方的"系统变量"内,新建一个 MYSQL_HOME 变量,输入你的 MyS ...

  6. spring cloud feign 添加headers

    原文地址: https://www.jianshu.com/p/dfec934b737f 很多时候我们需要feign的时候添加headers 1.把当前登录用户的token传到下一个服务 2.在自己的 ...

  7. The Product-Minded Software Engineer

    转自The Product-Minded Software Engineer Product-minded engineers are developers with lots of interest ...

  8. 【SpringCloud】01.常见软件架构的区别

    MVC.RPC.SOA.微服务架构的区别: 一.MVC架构 MVC架构就是一种单体架构. 代表技术:Struts2.SpringMVC.Spring.Mybatis等等. 二.RPC架构 RPC(Re ...

  9. Pycharm激活码,最新2020Pycharm永久激活码!!!

    分享一个Pycharm激活码给各位,是一个永久的Pycharm激活码~ 要是下边的这个Pycharm激活码失效了的话,大家可以关注微信公众号:Python联盟,然后回复"激活码"即 ...

  10. WPF应用中一种比较完美的权限控制设计方式

    如题近段时间 需要在wpf应用中设计一个权限控制 , 简而言之的说 你懂的 对于IT人员来说都知道的 常见的软件功能 首先要有用户 用户,然后用户属于哪个角色 ,然后各个角色都有自己的可供操作的一堆功 ...