Dom4j常用功能笔记


Document    xml文档的整体
    Element        xml文档中的各个节点<element>element的Text</element>
        Attribute    节点Element中的属性 <item 属性1=值1 属性2=值2>Text</item>

****************************************       分割       ****************************************
****************************************Document对象创建:****************************************
1、从文档中读取
SAXReader reader = new SAXReader();
Document   document = reader.read(new File("mytest.xml"));
2、xml字符串
String s = "<Element></Element>";               
Document document = DocumentHelper.parseText(s);
3、直接创建
Document document = DocumentHelper.createDocument();//创建根节点  
Element root = document.addElement("root");
root.addElement("element1");
root.addElement("element2");
Element e3   = root.addElement("element3");
Element newE = e3.addElement("newElement");
newE.addAttribute("id","testId")
<root>
<element1>
</element1>
<element2>
</element2>
<element3>
    <newElement id="testId">
    </newElement>
</element3>
</root>

****************************************    重要的3个类。  ****************************************

****************************************    Document:     ****************************************
document.getRootElement(); //获取根节点

****************************************     Element:     ****************************************
element.element("testE");//获取element节点下的testE节点,返回Element
element.addElement("testE");//在Element节点下增加testE节点,返回该增加的Element
element.getText();//获取Element节点的内容 返回内容
element.setText("text");//Element节点中增加text内容
element.addCDATA("text");//Element节点中增加cdata数据
element.addAttribute("id","testId");//Element节点中增加id属性以及值testI的
element.attribute("id");//获取id属性对象,返回Attribute对象。
element.attributeValue("id");//获取id属性的值。

Element的遍历
element.elementIterator();获取element下的所有element,返回Iterator迭代器对象
注:迭代器是种设计模式,用于遍历并选择序列中的对象。java.lang.Iterable接口,被Collection继承。Set,List,接口都继承于Collection

for(Iterator it=element.elementIterator();it.hasNext();){
    Element element = (Element) it.next();
    //……一系列处理
}
Iterator it = element.elementIterator();
while(it.hasNext()){
    Element element = (Element) it.next();
    //……一系列处理
}



*****************************************      Attribute:   ***************************************
element.attribute("id"); //获得element的id属性,返回Attribute对象。
attribute.getText();    //获取属性的值。

Attribute的遍历

element.attributeIterator();//获得element对象的所有属性,返回Iterator迭代器对象

package xyz.jangle.dom4j.test;

import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class Dom4jTest {

	public static void main(String[] args) {
		
		String s = "<Element></Element>";               
		try {
			//创建xml文档对象
			Document document = DocumentHelper.parseText(s);
			//增加节点
			Element rootElement = document.getRootElement();
			Element e2 = rootElement.addElement("e2");
			Element e3 = rootElement.addElement("e3");
			e3.addAttribute("id", "2");
			//节点增加文本内容
			e2.addText("这里是文本内容Text");
			//节点增加属性
			e2.addAttribute("这里是属性名称", "这里是属性值Value");
			e2.addAttribute("id", "1");
			//xml转String
			String asXML = document.asXML();
			System.out.println(asXML);
			
			//遍历节点
			Iterator<?> elementIterator = rootElement.elementIterator();
			while(elementIterator.hasNext()){
				Element element = (Element)elementIterator.next();
				System.out.println(element.getName());
				System.out.println(element.getText());
			}
			@SuppressWarnings("unchecked")
			List<Element> list = rootElement.elements();
			for(Element e : list){
				System.out.println(e.getName());
				System.out.println(e.getText());
			}
			
			//遍历属性
			Iterator<?> attributeIterator = e2.attributeIterator();
			while(attributeIterator.hasNext()){
				Attribute a = (Attribute)attributeIterator.next();
				System.out.println(a.getName()+" "+a.getValue());
			}
			@SuppressWarnings("unchecked")
			List<Attribute> attributes = e2.attributes();
			for(Attribute a : attributes){
				System.out.println(a.getName());
				System.out.println(a.getValue());
			}
			
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 

	}

}



参考文献:http://blog.csdn.net/redarmy_chen/article/details/12969219

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值