dom4j处理XML的一些经验

一周时间,基本上完成了我称之为PfwBuilder的工具,生成公司pfw的配置文件,虽没有用到什么模式的思想,但是把几个不太熟悉的Java领域练了一遍,周末的时间,写点心得之类的东西,记录一下这周的收获吧。

     首先就是第一次用XML,对很多东西都不太熟悉,用了以后感觉要好一点了,常用的XML的工具主要有 Apache 的 Xerces 和 dom4j.org 的 dom4j,我选择的是 dom4j 比较轻巧,而且有一些自己需要的功能。

操作一个XML时我们常会用到这些东西:

Document 每个被解析的XML文档都会有一个单独的Document节点,该节点提供对文档类型信息和单独的顶级Element节点的访问。

Element 该节点是组成文档主体的 Text, Comment, EntityReference 和 CDATASection 节点的父节点,该节点允许对Attr对象的访问。

如:<name>Jack</name> 就是一个Element,其 name 为 name,Text为 Jack

Attr 该对象存放了Element下的属性值

如:<name show=”on”>Jack</name> 中的 show=”on”就是一个Attr 其 name 为 show ,value为on。

还有一个Node,没弄太清楚这到底是干什么的,好像既能表示 Element,又能表示 Attr。

我们通常会把 *.xml 的配置文件放在一个和 class 放在一起的文件夹里,但是访问的时候如何获取这个路径,这个问题折磨了我一个上午的时间。

最后请教 IC 那边的同事才找到解决办法,写了这样的一个方法,这样不管这些class文件在什么地方,获取的都是class的根文件夹。

     private String getDbConfigFile()

     {

         ClassLoader loader = Thread.currentThread().getContextClassLoader();

         URL sourceUrl = loader.getResource(DB_CONFIG_FILE);

         return sourceUrl.getFile();

     }

还有就是dom4j的格式化XML,这个功能很有意思,我也很喜欢。

OutputFormat format = OutputFormat.createPrettyPrint(); // 格式化输出

format.setIndent("/t"); // 使用TAB缩进

XMLWriter writer = new XMLWriter(new FileWriter(this.getDbConfigFile()), format);

writer.write(document); //输出到文件

writer.close(); 
 

你可能感兴趣的:(apache,xml,ClassLoader,Class,文档,工具)