解析的还是不好,但是先放在这里,用的时候再改~!
user.xml
<hibernate-mapping>
<class name="com.bjstx.User" table="t_user">
<property name="username"></property>
<property name="password"></property>
</class>
<tyut name="zjj">
<ppp name="zy"></ppp>
</tyut>
</hibernate-mapping>
DOM4JTest.java
package com.bjsxt.dom4j;
import java.io.File;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class DOM4JTest {
public static void main(String[] args) throws Exception{
SAXReader reader = new SAXReader();
Document document = reader.read(new File("User.xml"));
Element rootElement = document.getRootElement();
p(rootElement.getName());
for(Iterator i = rootElement.elementIterator(); i.hasNext();){
Element element = (Element) i.next();
p(element.getName());
for(Iterator j = element.attributeIterator();j.hasNext();){
Attribute attribute = (Attribute) j.next();
p(attribute.getName()+"--"+ attribute.getValue());
/*for(Iterator k = element.attributeIterator();k.hasNext();){
Attribute attributek = (Attribute) k.next();
p(attributek.getName()+"--"+ attributek.getValue());
}*/
}
}
}
public static void p(Object o){
System.out.println(o);
}
}
结果:
hibernate-mapping
class
name--com.bjstx.User
table--t_user
tyut
name--zjj
还有两个类似,自己研读:
1。
package com.bjsxt.dom4j;
import java.io.File;
import java.io.FileWriter;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class DOM4JTest2 {
public static void main(String[] args) throws Exception{
SAXReader reader = new SAXReader();
Document document = reader.read(new File("User.xml"));
Element rootElement = document.getRootElement();
p(rootElement.getName());
for(Iterator i = rootElement.elementIterator(); i.hasNext();){
Element element = (Element) i.next();
p(element.getName());
for(Iterator j = element.attributeIterator();j.hasNext();){
Attribute attribute = (Attribute) j.next();
p(attribute.getName()+"--"+ attribute.getValue());
//xpath
List<Node> list = document.selectNodes("//hibernate-mapping/class/property");
for(Node n : list){
p(n.getName());
p(n.valueOf("@name"));//n这个节点,名字叫name的属性的值,@表示这是一个属性
}
//Node node = document.selectSingleNode(arg0); //拿出符合条件的第一个节点
//String name = node.valueOf(arg0)
}
}
createDocument();
}
public static void p(Object o){
System.out.println(o);
}
//创建xml
public static Document createDocument() throws Exception {
Document document = DocumentHelper.createDocument();
Element root = document.addElement("hibernate-mapping");
Element classElement = root.addElement("class")
.addAttribute("name", "com.bjsxt.User")
.addAttribute("table", "t_user");
classElement.addElement("property").addAttribute("name", "username");
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(
new FileWriter( "User1.hbm.xml" ), format
);
writer.write( document );
writer.close();
/*//FileWriter out = new FileWriter("f://User1.xml");
FileWriter out = new FileWriter("User1.xml");
document.write(out);
out.flush();
out.close();*/
return document;
}
}
2.
package com.bjsxt.dom4j;
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;
public class DOM4JTest3 {
public static void main(String[] args) throws Exception{
SAXReader reader = new SAXReader();
Document document = reader.read(new File("User.xml"));
Element rootElement = document.getRootElement();
p(rootElement.getName());
for(Iterator i = rootElement.elementIterator(); i.hasNext();){
Element element = (Element) i.next();
p(element.getName());
for(Iterator j = element.attributeIterator();j.hasNext();){
Attribute attribute = (Attribute) j.next();
p(attribute.getName()+"--"+ attribute.getValue());
//xpath
List<Node> list = document.selectNodes("//hibernate-mapping/class/property");
for(Node n : list){
p(n.getName());
p(n.valueOf("@name"));//n这个节点,名字叫name的属性的值,@表示这是一个属性
}
//Node node = document.selectSingleNode(arg0); //拿出符合条件的第一个节点
//String name = node.valueOf(arg0)
}
}
}
public static void p(Object o){
System.out.println(o);
}
}