2022年JAVA技术XML配置文件的读取处理.docx
-
资源ID:12791768
资源大小:24.16KB
全文页数:7页
- 资源格式: DOCX
下载积分:4.3金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2022年JAVA技术XML配置文件的读取处理.docx
精品学习资源Java 和 XML 是黄金组合,网上已经有很多文章介绍,XML 作为电子商务中数据交换,已经有其不行替代的作用,但是在平常系统开发中,我们不愿定都用到数据交换,是不是无法使用XML 了?当然不是,现在已经有一个新趋势, java程序的配置文件都开头使用 XML 格式,以前是使用类似 windows的 INI格式;( Java 中也有 Propertiesy这样的类特地处理这样的属性配置文 件);使用 XML 作为 Java 的配置文件有很多好处,从 Tomcat的安装配置文件和 J2ee 的配置文件中,我们已经看到XML 的普遍应用,让我们也跟随流行趋势用 XML 武装起来;现在关键是如何读取 XML 配置文件?有好几种 XML 解读器: 主要有 DOM 和 SAX ,这些区分网上文章介绍很多;在 apache的 XML 工程组中,目前有 Xerces Xalan Cocoon几个开发 XML 相关技术的 project.Tomcat本身使用的是 Sun的JAXP,而其 XSL Taglib project中使用 Xerces解读器;好了,上面都是比较烦人的理论问题,仍是赶快切入XML 的配置文件的读取吧;在我们的程序中,通常要有一些依据主机环境确定的变量;比如数据库拜望用户名和密码,不同的主机可能设置不一样;只要更改 XML 配置文件,就可以正常运行;欢迎下载精品学习资源localhost sqlname username password上面这个 myenv.xml 配置文件一般是放在 tomcat 的 WEB-INF/classes目录下;我们编制一个 Java 程序直接读取,将 dbhost dbuser dbpassword提取出来供其他程序拜望数据库用;目前使用 SAX 比较的多,与 DOM 主要区分是 SAX 是一行一行读取 XML 文件进行分析,适合比较大文件, DOM 是一次性读入内存,明显不能应对大文件;这里我们使用SAX 解读,由于 SAX 解读器不断在进展,网上有不少文章是针对老版本的;假如你使用JDK1.4,可以参考 使用 SAX 处理 XML 文档 一文;这里的程序是依据其改进并且经过实践调试得来的;对上面 myenv.xml读取的 Java 程序:import org.xml.sax.Attributes;import org.xml.sax.helpers.DefaultHandler;import org.xml.sax.SAXException;import java.util.Properties;/ 使用 DefaultHandler的好处 是 不必摆设出全部方法 ,欢迎下载精品学习资源public class ConfigParser extends DefaultHandler /定义一个 Properties用来存放 dbhost dbuser dbpassword的值private Properties props;private String currentSet;private String currentName;private StringBuffer currentValue = new StringBuffer;/ 构建器初始化 props public ConfigParser this.props = new Properties;public Properties getProps return this.props;/ 定义开头解读元素的方法 . 这里是将中的名称 xxx 提取出来 . public void startElementString uri, String localName,String qName, Attributes attributes throws SAXException currentValue.delete0, currentValue.length;this.currentName =qName;欢迎下载精品学习资源/ 这里是将之间的值加入到 currentValue public void characterschar ch, int start, int lengththrows SAXException currentValue.appendch, start, length;/ 在遇到终止后 , 将之前的名称和值一一对应储存在props中public void endElementString uri, String localName, String qName throws SAXException props.putqName.toLowerCase,currentValue.toString.trim;上面的这个解读程序比较简洁吧?其实解读 XML 就是这么简单;现在我们已经将 dbhost dbuser dbpassword的值localhost sqlname username password提取了出来;但是这只是在在解读器内部,我们的程序仍不能拜望;需要再编制一个程序;欢迎下载精品学习资源import java.util.Properties;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import .URL;public class ParseXML/ 定义一个 Properties用来存放 dbhost dbuser dbpassword的值private Properties props;/ 这里的 props public Properties getProps return this.props;public void parseString filename throws Exception / 将我们的解读器对象化ConfigParser handler = new ConfigParser;/ 猎取 SAX 工厂对象SAXParserFactory factory =SAXParserFactory.newInstance;factory.setNamespaceAwarefalse;factory.setValidatingfalse/ 猎取 SAX 解读;欢迎下载精品学习资源SAXParser parser = factory.newSAXParser;/ 得到配置文件 myenv.xml所在目录 . tomcat中是在 WEB-INF/classes/ 下例中 BeansConstants是用来存放 xml 文件中配置信息的类 ,可以自己代替或定义URL confURL =BeansConstants.class.getClassLoader.getResourcefilename ;try/ 将解读器和解读对象 myenv.xml联系起来 , 开头解读parser.parseconfURL.toString, handler;/ 猎取解读成功后的属性 以后 我们其他应用程序只要调用本程序的props就可以提取出属性名称和值了props = handler.getProps;finally factory=null;parser=null;handler=null;欢迎下载精品学习资源由于我们的 XML 文件是使用最简洁的形式 ,因此解读器相对简洁,但是这已经足够应对我们的配置文件了;欢迎下载