[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 ...
随机推荐
- Java文件上传与下载压缩
文件上传与下载压缩 文件上传: 这是一个通用的本地文件的上传代码,可以将文件类型存储到相应的本地目录下 注:本次演示为存储路径为项目所在的resources目录下,可通过url去访问本地文件数据适用于 ...
- 强烈建议收藏,python库大全
Python常用库大全及简要说明 本文为大家罗列了Python开发的常用库和各个库的简要说明以及Python开发工具,包管理,环境管理等其它常用资源和Python学习资料.本文只罗列了一部分,完整内容 ...
- Vue中生成二维码 组件库qrcode使用
qrcode网址: https://www.npmjs.com/package/qrcode 安装代码如下: npm install qrcodeqrcode文档中生成二维码有很多环境下的用法.我们这 ...
- vue表单修饰符
- Flume原理及使用案例
本文为转载篇!原文: https://www.cnblogs.com/zhangyinhua/p/7803486.html https://www.cnblogs.com/ciade/p/549521 ...
- python进度条实现的几种方法
一.普通进度条(time实现) import time def progress_bar(): for i in range(101): print(f'\rProgress: {"#&qu ...
- 机器学习-线性分类-支持向量机SVM-合页损失-SVM输出概率值-16
目录 1. SVM概率化输出 2. 合页损失 1. SVM概率化输出 标准的SVM进行预测 输出的结果是: 是无法输出0-1之间的 正样本 发生的概率值 sigmoid-fitting 方法: 将标准 ...
- Mysql有布尔(BOOL)类型吗
转载请注明出处: 在MySQL中,没有专门的Boolean数据类型.相反,MySQL中使用TINYINT(1)来代表布尔类型,其中1表示真(True),0表示假(False).在MySQL中,TINY ...
- mysql-字符函数-拼接-长度-切片-替换
- 【面试题精讲】JavaOptional用法
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址 文章更新计划 系列文章地址 Java 8 引入了 Option ...