首先就是第一次用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();