DOM4J解析XML

解析的还是不好,但是先放在这里,用的时候再改~!

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);
	}
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值