关于用java读取xml中节点的值

在写个工程,用到了如下配置的XML文档,时间紧没法网上资料太多一时看了头大,实在不知道怎么解析了,各位大神麻烦指教一下。

配置文档内容如下

hibernate-configuration PUBLIC    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

com.mysql.jdbc.Driver

jdbc:mysql://localhost/db?characterEncoding=gb2312

root

root

com.mysql.jdbc.Driver

jdbc:mysql://localhost/db?characterEncoding=gb2312

root

root

需要把上面的信息读取出来放map里。

比如键aaa.driver_class值com.mysql.jdbc.Driver

------解决思路----------------------

package hello.ant;

import java.io.InputStream;

import java.util.LinkedHashMap;

import java.util.List;

import java.util.Map;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

public class SaxXml {

public static void main(String[] args) throws Exception {

Map map=new LinkedHashMap();

InputStream is = SaxXml.class.getResourceAsStream("/hibernate.xml");

Document doc = new SAXReader().read(is);

Element root_node = doc.getRootElement();

//System.out.println(root_node.getName());

List child_node_list = root_node.elements();

for (Element child_node : child_node_list) {

//System.out.println(child_node.getName());

String key=child_node.attributeValue("name");

String value=child_node.getText();

map.put(key, value);

List child_node_child = child_node.elements();

for(Element child_node_child_list : child_node_child){

//System.out.println(child_node_child_list.getName());

String key1=child_node_child_list.attributeValue("name");

String value1=child_node_child_list.getText();

map.put(key1, value1);

}

}

for(Map.Entry entry:map.entrySet()){

System.out.println(entry.getKey()+"==="+entry.getValue());

}

//System.out.println(map.size());

}

}

java获取返回xml节点里的值,关于用java读取xml中节点的值解决方案相关推荐

  1. java获取当前时间代码(适合于是springboot+vue+java)

    java获取当前时间代码(适合于是springboot+vue+java) /*** 获取当前的的动态时间格式*/Calendar calendar = Calendar.getInstance(); ...

  2. excel 读取json中指定字段值

    excel 读取json中指定字段值 FIND语法 FIND(find_text, within_text, [start_num]) FIND实例一 FIND实例二 MID语法 MID(text, ...

  3. 【Flutter】Animation 动画 ( Flutter 动画基本流程 | 创建动画控制器 | 创建动画 | 设置值监听器 | 设置状态监听器 | 布局中使用动画值 | 动画运行 )

    文章目录 一.创建动画控制器 二.创建动画 三.设置值监听器 四.设置状态监听器 五.布局中使用动画值 六.动画运行 七.完整代码示例 八.相关资源 Flutter 动画基本流程 : ① 创建动画控制 ...

  4. 第十四周项目一数组大折腾(1)创建一个有20个元素的整型数组,通过初始化,为数组中的前10个元素赋初值,然后通过键盘输入后10个元素的值,从前往后输出数组中元素的值,每五个元素

    问题及代码 创建一个有20个元素的整型数组,通过初始化,为数组中的前10个元素赋初值,然后通过键盘输入后10个元素的值,从前往后输出数组中元素的值,每五个元素 换一行. /*烟台大学计算机学院 201 ...

  5. java 获取对象方法有哪些方法有哪些方法有哪些_Java中创建String 对象的方法有哪些...

    Java中创建String 对象的方法有哪些 发布时间:2020-11-25 16:45:30 来源:亿速云 阅读:71 作者:Leah 这篇文章将为大家详细讲解有关Java中创建String 对象的 ...

  6. java 获取ip地址_老杜带你学Java【第二课】

    上期链接:老杜带你学Java[第一课] 01 写在前面 欢迎来到杜老师的「零基础学Java」课堂~今后,我们就是Java软件工程师了.(此处应该有掌声???)本专题为<零基础学Java>专 ...

  7. java 父类返回子类是咧_【daily】Java泛型 - 返回父类的子类

    一.栗子 public class GenericityInher { //error: Type mismatch: cannot convert from ArrayList to ArrayLi ...

  8. java获取已经打开的串口的输出流_使用Java读取串口的程序(转)

    这个简单的程序包括以下文件: IMU.java (主程序) ReadBuffer.java (从缓冲区读取一个消息) ReadSerial.java (读取串口数据并放入缓冲区) SerialBuff ...

  9. php某列为键数组为值,PHP 将二维数组中某列值作为数组的键名 -- 超实用

    有时候,想通过数组的中某字段值, 然后再在二维数组中获取存在该字段值的数组: 一般能想到的就是foreach 遍历比较一下跟该字段值一样,就获取到想要的数组,如下: //测试二维数组 $arr =ar ...

最新文章

  1. 构建node.js基础镜像_我如何使用Node.js构建工作抓取网络应用
  2. 获取数组第N个元素的方法
  3. go语言打印日期_判定是否掌握Go语言的最重要标准:对并发的掌握
  4. Java GregorianCalendar getMaximum()方法与示例
  5. docker添加jar包_Docker部署jar包
  6. 图论 —— k 短路
  7. 低版本系统兼容的ActionBar(六)用Fragment+ViewPager+Tab实现快速导航
  8. 项目遇到技术难题,领导让我假招聘套取解决方案,我没有照做,结果15天后蒙了
  9. 地大计算机历年分数线,中国地质大学武汉历年分数线 2021中国地质大学武汉录取分数线...
  10. Linux安装python3.8时,编译过程中报错Could not build the ssl module!
  11. Postman Mock Server 使用
  12. Materials Studio多层聚合物的构建及data文件导出
  13. android微信配色,万能微信公众号配色模板(神仙配色太好看了)
  14. 局域网络连接的计算机不全,大神教你win7局域网内可以看到对方计算机但无法连接的办法?...
  15. 华为笔记本触摸板使用技巧
  16. 新闻文本分类学习笔记
  17. Android call requires API level 12 的解决方案
  18. 10000,感谢有你
  19. 《算法技术手册》一1.3.5 融会贯通
  20. 小学老师超强语录总结版

热门文章

  1. java:二分法查找
  2. OJ1036: 某年某月有多少天
  3. 信息学奥赛一本通(1038:苹果和虫子)
  4. 绝对素数(信息学奥赛一本通-T1153)
  5. 26 WM配置-策略-入库策略6-定义批量仓储的策略B(Bulk Storage Strategy)
  6. 日语学习-多邻国-兴趣爱好
  7. win10无限重启_win10系统安装无限循环如何解决_win10教程
  8. datetimepicker获取年月日_bootstrap-datetimepicker 获取时间
  9. linux 64位内存划分,linux 64位内存空间大小?(linux 64 bits memory space size? [closed])
  10. 为什么c++要“在头文件中声明,在源文件中定义”?