前段时间用dom4j读取配置文件的时候,当时报了个小bug,后来中间去做别的东西了,几天又把那段代码拿出来调了下,发现ok了。
为了使用这个东西读配置文件,首先引入:
下面是测试代码:
public class DOM4Jtest {
public static void main(String[] args){
SAXReader reader=new SAXReader();
try {
/*获取节点值*/
Document document=reader.read("H:/lhcInfo.xml");
Element root=document.getRootElement();//获取文档的根节点
Attribute attribute=root.attribute("age");//取得根节点的age的属性值
String strAge=attribute.getText();//得到属性文字
System.out.println("my age is: "+strAge);//console输出age
Element element_hobby=root.element("hobby");//取得根节点上的hobby节点
Element element_read_books=element_hobby.element("books");//取得read_books节点
/*读取read_books里面的所有节点的值*/
for(Iterator it=element_read_books.elementIterator();it.hasNext();){
Element element=(Element)it.next();
String strVal=element.getText();//得到节点值
System.out.println(strVal);
}
/*更改节点值*/
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<lhc name="lhc" age="23" sex="girl">
<hobby>
<books>
<item>明朝那些事儿</item>
<item>基督山伯爵</item>
<item>编写可读代码的艺术</item>
<item>就喜欢你看不惯我又干不掉我的样子</item>
</books>
</hobby>
</lhc>
查了下,出现这个问题的原因可能是:1,tomcat安装目录下面有空格;2,xml文件路径中有中文。检查了下,发现我是第二个原因。
这个在读写节点的时候还是常出现的,有时候一手抖,打错了个字母,就要回去检查看看哪个节点名称写错了。