相关阅读:

使用Ajax进行文件与其他参数的上传功能(java开发)
1. XML文件:
什么是XML?XML一般是指可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
2.XML文件的优点:
1)XML文档内容和结构完全分离。
2)互操作性强。
3)规范统一。
4)支持多种编码。
5)可扩展性强。
3.如何解析XML文档:
XML在不同的语言中解析XML文档都是一样的,只不过实现的语法不一样,基本的解析方式有两种,一种是SAX方式,是按照XML文件的顺序一步一步解析。另外一种的解析方式DOM方式,而DOM方式解析的关键就是节点。另外还有DOM4J、JDOM等方式。本文介绍的是DOM、DOM4J方式与封装成一个工具类的方式来读取XML文档。
4.XML文档:
scores.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE students [ <!ELEMENT students (student+)> <!ELEMENT student (name,course,score)> <!ATTLIST student id CDATA #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT course (#PCDATA)> <!ELEMENT score (#PCDATA)> ]> <students> <student id="11"> <name>张三</name> <course>JavaSE</course> <score>100</score> </student> <student id="22"> <name>李四</name> <course>Oracle</course> <score>98</score> </student> </students>
5.DOM方式解析XML
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
//1.创建DOM解析器工厂
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//2.由DOM解析器工厂创建DOM解析器
DocumentBuilder db = dbf.newDocumentBuilder();
//3.由DOM解析器解析文档,生成DOM树
Document doc = db.parse("scores.xml");
//4.解析DOM树,获取文档内容(元素 属性 文本)
//4.1获取根元素scores
NodeList scoresList = doc.getChildNodes();
Node scoresNode = scoresList.item(1);
System.out.println(scoresList.getLength());
//4.2获取scores中所有的子元素student
NodeList studentList = scoresNode.getChildNodes();
System.out.println(studentList.getLength());
//4.3对每个student进行处理
for(int i=0;i<studentList.getLength();i++){
Node stuNode = studentList.item(i);
//System.out.println(stuNode.getNodeType());
//输出元素的属性 id
if(stuNode.getNodeType()==Node.ELEMENT_NODE){
Element elem =(Element)stuNode;
String id= elem.getAttribute("id");
System.out.println("id------>"+id);
}
//输出元素的子元素 name course score
NodeList ncsList = stuNode.getChildNodes();
//System.out.println(ncsList.getLength() );
for(int j=0;j<ncsList.getLength();j++){
Node ncs = ncsList.item(j);
if(ncs.getNodeType() == Node.ELEMENT_NODE){
String name = ncs.getNodeName();
//String value = ncs.getFirstChild().getNodeValue();//文本是元素的子节点,所以要getFirstChild
String value = ncs.getTextContent();
System.out.println(name+"----->"+value);
}
}
System.out.println();
}
}
6.DOM4J方式解析XML文档:
public static void main(String[] args) throws DocumentException {
//使用dom4j解析scores2.xml,生成dom树
SAXReader reader = new SAXReader();
Document doc = reader.read(new File("scores.xml"));
//得到根节点:students
Element root = doc.getRootElement();
//得到students的所有子节点:student
Iterator<Element> it = root.elementIterator();
//处理每个student
while(it.hasNext()){
//得到每个学生
Element stuElem =it.next();
//System.out.println(stuElem);
//输出学生的属性:id
List<Attribute> attrList = stuElem.attributes();
for(Attribute attr :attrList){
String name = attr.getName();
String value = attr.getValue();
System.out.println(name+"----->"+value);
}
//输出学生的子元素:name,course,score
Iterator <Element>it2 = stuElem.elementIterator();
while(it2.hasNext()){
Element elem = it2.next();
String name = elem.getName();
String text = elem.getText();
System.out.println(name+"----->"+text);
}
System.out.println();
}
}
当然,无论我们是使用那种方式解析XML的,都需要导入jar包(千万不要忘记)。
7.我自己的方式:
在实际开发的工程中,我们要善于使用工具类,将我们反复使用的功能封装成一个工具类,所以,下面的方式就是我在开发的过程中使用的方式.
7.1什么是properties文件:
7.1.1 从结构上讲:
.xml文件主要是树形文件。
.properties文件主要是以key-value键值对的形式存在
7.1.2 从灵活的角度来说:
.xml文件要比.properties文件的灵活读更高一些。
7.1.3 从便捷的角度来说:
.properties文件比.xml文件配置更加简单。
7.1.4 从应用程度上来说:
.properties文件比较适合于小型简单的项目,因为.xml更加灵活。
7.2自己的properties文档:
在我自己的项目中创建了一个path.properties文件,里面用来存放我即将使用的路径,以名字=值的方式存放。例如:
realPath = D:/file/
7.3 解析自己的.properties文件:
public class PropertiesUtil {
private static PropertiesUtil manager = null;
private static Object managerLock = new Object();
private Object propertiesLock = new Object();
private static String DATABASE_CONFIG_FILE = "/path.properties";
private Properties properties = null;
public static PropertiesUtil getInstance() {
if (manager == null) {
synchronized (managerLock) {
if (manager == null) {
manager = new PropertiesUtil();
}
}
}
return manager;
}
private PropertiesUtil() {
}
public static String getProperty(String name) {
return getInstance()._getProperty(name);
}
private String _getProperty(String name) {
initProperty();
String property = properties.getProperty(name);
if (property == null) {
return "";
} else {
return property.trim();
}
}
public static Enumeration<?> propertyNames() {
return getInstance()._propertyNames();
}
private Enumeration<?> _propertyNames() {
initProperty();
return properties.propertyNames();
}
private void initProperty() {
if (properties == null) {
synchronized (propertiesLock) {
if (properties == null) {
loadProperties();
}
}
}
}
private void loadProperties() {
properties = new Properties();
InputStream in = null;
try {
in = getClass().getResourceAsStream(DATABASE_CONFIG_FILE);
properties.load(in);
} catch (Exception e) {
System.err
.println("Error reading conf properties in PropertiesUtil.loadProps() "
+ e);
e.printStackTrace();
} finally {
try {
in.close();
} catch (Exception e) {
}
}
}
/**
* 提供配置文件路径
*
* @param filePath
* @return
*/
public Properties loadProperties(String filePath) {
Properties properties = new Properties();
InputStream in = null;
try {
in = getClass().getResourceAsStream(filePath);
properties.load(in);
} catch (Exception e) {
System.err
.println("Error reading conf properties in PropertiesUtil.loadProperties() "
+ e);
e.printStackTrace();
} finally {
try {
in.close();
} catch (Exception e) {
}
}
return properties;
}
}
当我们使用之前,我们只需要给 DATABASE_CONFIG_FILE 属性附上值,就是我们.properties文件的名称,当使用的时候,我们就可以直接使用类名. getProperty(“realPath”);的方式就可以获取到在.properties文件中的key为realPath的内容。
以上所述是小编给大家介绍的Java开发中读取XML与properties配置文件的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
# java读取xml配置文件
# java读取properties配置文件
# java读取properties配置文件的方法
# Java中的几种读取properties配置文件的方式
# Java读取properties配置文件时
# 出现中文乱码的解决方法
# Java读取.properties配置文件方法示例
# Java读取.properties配置文件的几种方式
# Java中使用Properties配置文件的简单方法
# 详解Java程序读取properties配置文件的方法
# Java 操作Properties配置文件详解
# java简单读取properties配置文件的方法示例
# Java读取properties配置文件的8种方式汇总
# 自己的
# 文档
# 小编
# 配置文件
# 就可以
# 的是
# 是一种
# 我在
# 在我
# 是指
# 只需
# 给大家
# 更高
# 使其
# 要比
# 当我们
# 有两种
# 要给
# 适合于
# 所述
相关文章:
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
如何在阿里云完成域名注册与建站?
建站之星如何取消后台验证码生成?
如何在腾讯云免费申请建站?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
网站制作的步骤包括,正确网址格式怎么写?
全景视频制作网站有哪些,全景图怎么做成网页?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
建站之星如何实现五合一智能建站与营销推广?
如何通过PHP快速构建高效问答网站功能?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
黑客如何利用漏洞与弱口令入侵网站服务器?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
用v-html解决Vue.js渲染中html标签不被解析的问题
建站之星如何开启自定义404页面避免用户流失?
重庆市网站制作公司,重庆招聘网站哪个好?
建站之星3.0如何解决常见操作问题?
制作农业网站的软件,比较好的农业网站推荐一下?
css网站制作参考文献有哪些,易聊怎么注册?
如何通过云梦建站系统实现SEO快速优化?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
如何打造高效商业网站?建站目的决定转化率
阿里云网站制作公司,阿里云快速搭建网站好用吗?
建站之星与建站宝盒如何选择最佳方案?
如何用已有域名快速搭建网站?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
如何快速搭建个人网站并优化SEO?
网站制作新手教程,新手建设一个网站需要注意些什么?
成都网站制作报价公司,成都工业用气开户费用?
建站之星客服服务时间及联系方式如何?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
*服务器网站为何频现安全漏洞?
如何用景安虚拟主机手机版绑定域名建站?
三星网站视频制作教程下载,三星w23网页如何全屏?
如何快速查询网址的建站时间与历史轨迹?
如何通过FTP服务器快速搭建网站?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
建站三合一如何选?哪家性价比更高?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
已有域名和空间,如何快速搭建网站?
设计网站制作公司有哪些,制作网页教程?
如何将凡科建站内容保存为本地文件?
建站之星安装需要哪些步骤及注意事项?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
如何通过万网虚拟主机快速搭建网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。