下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——Java高级怎样读取和处理XML的配置文件Java高级:怎样读取和处理XML的配置文件
Java高级:怎样读取和处理XML的配置文件呢?看了下面我整理的内容你就知道怎么解决您的问题了,梦想对您有所扶助!更多内容请关注我!
在我们的程序中,通常要有一些根据主机环境确定的变量.譬如数据库访问用户名和密码,不同的主机可能设置不一样.只要更改XML配置文件,就可以正常运行.
localhost
sqlname
username
password
上面这个myenv.xml配置文件一般是放在tomcat的WEB-INF/classes目次下.
我们编制一个Java程序直接读取,将dbhostdbuserdbpassword提取出来供其他程序访问数据库用.
目前使用SAX对比的多,与DOM主要识别是SAX是一行一行读取XML文件举行分析,适合对比大文件,DOM是一次性读入内存,鲜明不能对付大文件.这里我们使用SAX解析,由于SAX解析器不断在进展,网上有不少文章是针对老版本的.假设你使用JDK1.4,可以参考使用SAX处理XML文档一文.这里的程序是根据其提升并且经过实践调试得来的.
对上面myenv.xml读取的Java程序:
importorg.xml.sax.Attributes;
importorg.xml.sax.helpers.DefaultHandler;
importorg.xml.sax.SAXException;
importjava.util.Properties;
//使用DefaultHandler的好处是不必罗列出全体方法,
publicclassConfigParserextendsDefaultHandler
////定义一个Properties用来存放dbhostdbuserdbpassword的值
privatePropertiesprops;
privateStringcurrentSet;
privateStringcurrentName;
privateStringBuffercurrentValue=newStringBuffer;
//构建器初始化props
publicConfigParser
ps=newProperties;
publicPropertiesgetProps
returnps;
//定义开头解析元素的方法.这里是将中的名称xxx提取出来.
publicvoidstartElementStringuri,StringlocalName,StringqName,Attributesattributes
throwsSAXException
currentValue.delete0,currentValue.length;
this.currentName=qName;
//这里是将之间的值参与到currentValue
publicvoidcharacterschar[]ch,intstart,intlengththrowsSAXException
currentValue.appendch,start,length;
//在遇到终止后,将之前的名称和值一一对应保存在props中
publicvoidendElementStringuri,StringlocalName,StringqNamethrowsSAXException
props.putqName.toLowerCase,currentValue.toString.trim;
上面的这个解析程序对比简朴吧?其实解析XML就是这么简朴.
现在我们已经将dbhostdbuserdbpassword的值localhostsqlnameusernamepassword提取了出来.但是这只是在在解析器内部,我们的程序还不能访问.需要再编制一个程序.
importjava.util.Properties;
importjavax.xml.parsers.SAXParser;
importjavax.xml.parsers.SAXParserFactory;
import.URL;
publicclassParseXML
//定义一个Properties用来存放dbhostdbuserdbpassword的'值
privatePropertiesprops;
Java高级:怎样读取和处理XML的配置文件
//这里的props
publicPropertiesgetProps
returnps;
publicvoidparseStringfilenamethrowsException
//将我们的解析器对象化
ConfigParserhandler=newConfigParser;
//获取SAX工厂对象
SAXParserFactoryfactory=SAXParserFactory.newInstance;
factory.setNamespaceAwarefalse;
factory.setValidatingfalse;
//获取SAX解析
SAXParserparser=factory.newSAXParser;
//得到配置文件myenv.xml所在目次.tomcat中是在WEB-INF/classes
//下例中BeansConstants是用来存放xml文件中配置信息的类,可以自己代替或定义
URLconfURL=BeansConstants.class.getClassLoader.getResourcefilename;
try
//将解析器和解析对象myenv.xml联系起来,开头解析
parser.parseconfURL.toString,handler;
//获取解析告成后的属性以后我们其他应用程序只要调用本程序的props就可以提取出属性名称和值了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年克拉玛依市乌尔禾区工会人员招聘考试试题及答案详解
- 2026南昌高新地区政务服务外包项目工作人员招聘26人考试备考题库及答案详解
- 2025年佳木斯市永红区工会人员招聘考试试题及答案详解
- 2025年山东省潍坊市工会人员招聘考试试题及答案详解
- 2025年朝阳市双塔区中小学教师招聘考试试题及答案详解
- 小学二年级数学《1000以内数的认识》单元整体教学设计
- 高中物理二年级《家庭电路风险防控体系构建与应急策略》教学设计
- 2026福建福州地铁集团有限公司第二批社会招聘56人考试模拟试题及答案详解
- 高中思想政治选择性必修3第三单元辩证思维方法复习教学设计(高三一轮)
- 2026年甘肃陇南西和县中小学选调教师139人笔试备考题库及答案详解
- 2026天津石油职业技术学院招聘20人笔试题库带答案详解(B卷)
- 2026年交管12123驾驶证学法减分试题(含参考答案)
- 2025年临沂市公安机关招录警务辅助人员笔试真题
- 部编版五升六语文暑假衔接作业完整版 基础巩固+新知预习含答案可打印
- 2026年(完整版)国家GCP培训考试题库及参考答案(完整版)
- 2026年廊坊银行人员招聘笔试备考试题及答案详解
- (2026年)手卫生规范与职业防护培训课件
- 幼儿园保健医岗位职责培训试题及答案
- 从零开始学量价分析(短线操盘-盘口分析与A股买卖点实战)
- PCI术后血脂管理
- 睡眠呼吸障碍合并哮喘的诊疗策略-1
评论
0/150
提交评论