dom4j解析xml

来源:互联网 发布:java中long转换成date 编辑:程序博客网 时间:2024/05/22 05:16

分享一个dom4j解析xml的一个小例子,其实在项目开发中dom4j用的并不多,网上有很多相关的例子,做一个简单的测试:

定义一个xml文件,名称为User.hbm.xml,内容为:

<hibernate-mapping>
<class name="cn.com.gjw.User" table="t_user">
<property name="username"></property>
<property name="password"></property>
</class>
</hibernate-mapping>


简单测试:

import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;


/**
 * @author gjw
 * 使用dom4j解析XML
 */
public class XMLTest {
public static void main(String[] args) throws Exception {
//用到的jar包为: dom4j-1.6.1.jar
SAXReader reader = new SAXReader();
Document document = reader.read(new File("User.hbm.xml"));
//获取根节点
Element rootElement = document.getRootElement();
System.out.println(rootElement.getName());
//获取子节点
for(Iterator iterator = rootElement.elementIterator(); iterator.hasNext();) {
Element element = (Element) iterator.next();
System.out.println(element.getName());
//获取子节点对应的属性
for (Iterator iterator2 = element.attributeIterator(); iterator2.hasNext();) {
Attribute attribute = (Attribute) iterator2.next();
System.out.println(attribute.getName() + " = " + attribute.getValue());
}
}

//使用xpath解析  用到的jar包为:jaxen-1.1.6.jar
List<Node> list = document.selectNodes("//hibernate-mapping/class/property");
for (Node node : list) {
System.out.println(node.getName());
//将node节点中名为name的属性打印出来。@代表属性
System.out.println(node.valueOf("@name"));
}
}
}

1 0
原创粉丝点击