[Java] 解析Xml配置文件
1、解析方法
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public static Map<String, String> parseXml(String xmlPath) {
/**
* 以解析xml中的dataSource标签中的url username password属性值为例
*/
String url = "";
String username = "";
String password = "";
Map<String, String> map = new HashMap<String, String>();
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
/**
* xmlPath为待解析xml文件的路径
*/
Document document = db.parse(xmlPath);
/**
* 此处的dataSource为标签名,即获取该xml文件下所有的dataSource标签
*/
NodeList nodeList = document.getElementsByTagName("dataSource");
/**
* 遍历标签(xml文件内dataSorce标签只有一个)
*/
for (int i = 0; i < nodeList.getLength(); i++) {
Node item = nodeList.item(i);
/**
* 获取item标签的属性字段
*/
NamedNodeMap attributes = item.getAttributes();
/**
* 遍历该标签的所有属性
*/
for (int j = 0; j < attributes.getLength(); j++) {
/**
* 此处就是获取指定属性的值
*/
if ("dbUrl".equals(attributes.item(j).getNodeName())) {
url = attributes.item(j).getNodeValue();
} else if ("userName".equals(attributes.item(j).getNodeName())) {
username = attributes.item(j).getNodeValue();
} else if ("passWord".equals(attributes.item(j).getNodeName())) {
password = attributes.item(j).getNodeValue();
}
}
}
map.put("url", url);
map.put("username", username);
map.put("password", password);
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
2、测试xml的内容
<?xml version="1.0" encoding="gbk"?>
<config>
<dataSource name="default" desc="彩票数据源"
driverName="com.mysql.jdbc.Driver"
dbUrl="jdbc:mysql://localhost:3306/icaipiao?useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true"
userName="root" passWord="123456"
checkSql="select 1+2 FROM dual" interval="1"
startNum="2" maxNum="10" maxCallNum="100000"
serverType="mysql" dbUrlBak="">
</dataSource>
<map file="C://1.txt"></map>
</config>
[Java] 解析Xml配置文件的更多相关文章
- Java 解析 XML
Java 解析 XML 标签: Java基础 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象 优点 ...
- JAVA解析XML的四种方式
java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这 ...
- XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax
本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...
- XML基础+Java解析XML +几种解析方式的性能比较
XML基础+Java解析XML 一:XML基础 XML是什么: 可扩展的标记语言 XML能干什么: 描述数据.存储数据.传输(交换)数据. XML与HTML区别: 目的不一样 XML 被设计用来描述数 ...
- java解析xml的三种方法
java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...
- java 解析XML文档
Java 解析XML文档 一.解析XML文档方式: 1.DOM方式:将整个XML文档读取到内存中,按照XML文件的树状结构图进行解析. 2.SAX方式:基于事件的解析,只需要加载XML中的部分数据,优 ...
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
[目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...
- Java解析XML文档(简单实例)——dom解析xml
一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object ...
- 【Java】详解Java解析XML的四种方法
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法. AD: XML现在已经成为一种通用的数据交换格式,它的平台无关性,语 ...
- java解析xml的几种方式
java解析xml的几种方式 DOM DOM的全称是Document ObjectModel,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称D ...
随机推荐
- Vue | vuex安装失败解决的方法实例
Vuex是一个专为Vue.js应用程序开发的状态管理模式 下面这篇文章主要给大家介绍了关于vuex安装失败解决的方法,文中通过图文介绍的非常详细,需要的朋友可以参考下 1.报错信息: npm ERR! ...
- 如何让 Llama2、通义千问开源大语言模型快速跑在函数计算上?
本文是"在Serverless平台上构建AIGC应用"系列文章的第一篇文章. 前言 随着ChatGPT 以及 Stable Diffusion,Midjourney 这些新生代 A ...
- js md5 和java md5后的值不一样
开发发现js 对字符串md5 和 java对字符串md5 计算的结果居然不一样,后来找了一个匹配的这里记录一下 注:加密的对象中不能有空格,有空格md5后的结果就不一致,都是眼泪.. js md5算法 ...
- S3C2440移植uboot之新建单板_时钟_SDRAM_串口
上一节S3C2440移植uboot之启动过程概述我们我们分析了uboot启动流程,这节将开始新建一块单板支持S3C2440. 目录 1.新建单板 1.1 将2410的单板文件夹拷贝成2440: 1.2 ...
- 小程序-轮播图swiper
- mysql批量替换字段
一.需求将数据库内指定的数据进行批量修改,可使用replace函数如IP:端口号,只改端口号的部分,将所有192.168.1.1:8001的数据8001的端口号修改为3001replace函数的用法如 ...
- Python 学习笔记: 从变量到装饰器
从变量开始 python 中全局变量在函数作用域内只能读,不能"写".如果要在函数作用域内实现修改全局变量值操作,需要使用关键字 global 显示指明该变量是全局变量. 但是,在 ...
- C++ 关键字 new
new new 是C++ 中的关键字,有两个含义 new 表达式 作为运算符的函数名,也就是 operator new new 表达式 提供一个特定的内存分配格式,返回在存储空间上构造的对象或对象数组 ...
- 海思Hi35xx 通过uboot 读取U盘文件进行固件升级
前言 基本过程为:uboot 启动后,通过命令将U盘的的文件读取到内存中,再通过uboot 的flash 写入命令将读取到内存中的升级文件写入到flash的固定位置. (一)usb常用命令 uboot ...
- [转帖]Oracle-UNDO篇
原文地址:https://www.modb.pro/db/70802?xzs= 一:请描述什么是Oracle Undo. 二:请描述UNDO的作用. 三:请谈谈你对Manual Undo Mana ...