dom4j

1. dom4j常用方法

Document
    Element getRootElement() :获取根元素对象(根标签)
Element
    List elements() :获取所有的子元素
    List elements(String name):根据指定的元素名称来获取相应的所有的子元素
    Element element(String name):根据指定的元素名称来获取子元素对象,如果元素名称重复,则获取第一个元素 
    String elementText(String name) :根据指定的子元素名称,来获取子元素中的文本
    String getText() :获取当前元素对象的文本
    void setText(String text):设置当前元素对象的文本
    String attributeValue(String name):根据指定的属性名称获取其对应的值
    public Element addAttribute(String name,String value):根据指定的属性名称和值进行添加或者修改
    addElement
DocumentHelper
    static Element    createElement(String name)


2. 实例

<?xml version="1.0" encoding="UTF-8"?>
<State Code="37" Name="河南" 
description="郑州" GDP="99999亿"> 
  <City> 
    <Name>郑州</Name>  
    <Region>高薪区</Region> 
  </City>  
  <City>三门峡</City>  
  <City>洛阳</City>  
  <City>安阳</City>  
  <City>南阳</City> 

</State>


public class Dom4JUtils {
private Dom4JUtils() {}

public static Document getDocument() throws Exception {
    SAXReader reader = new SAXReader();
    Document document = reader.read("src/com/herbert/city.xml");
    return document;
}

//to
public static void write2XML(Document document) throws IOException {
OutputFormat format = OutputFormat.createPrettyPrint();
//format.setEncoding("UTF-8");//默认的编码就是UTF-8
XMLWriter writer = new XMLWriter( new FileOutputStream("src/com/herbert/city.xml"), format );
                writer.write( document );
}

}


public class Dom4JDemo {
public static void main(String[] args) throws Exception  {
//7、操作XML文件属性:打印State的Name
//8、添加属性:State: GDP="99999亿"
Document document = Dom4JUtils.getDocument();
//获取根元素
Element rootElement = document.getRootElement();
//添加新的属性和对应的值
rootElement.addAttribute("GDP", "99999亿");

//写回文件
Dom4JUtils.write2XML(document);
}

private static void method7() throws Exception {
//7、操作XML文件属性:打印State的Name
Document document = Dom4JUtils.getDocument();
//获取根元素
Element rootElement = document.getRootElement();
//根据属性名称获取值
String value = rootElement.attributeValue("Name");
System.out.println(value);
}

private static void method6() throws Exception, IOException {
//5、向指定元素节点上增加同级元素节点:在洛阳前面,添加一个<City>三门峡</City>
//创建一个新的元素对象
Element cityElement = DocumentHelper.createElement("City");
//设置文本
cityElement.setText("三门峡");

Document document = Dom4JUtils.getDocument();
//获取根元素
Element rootElement = document.getRootElement();
//获取根元素下所有的子元素
List<Element> es = rootElement.elements();
//将新的元素添加到子元素列表中
es.add(1, cityElement);

//写会文件
Dom4JUtils.write2XML(document);
}

private static void method5() throws Exception, IOException {
//4、向指定元素节点中增加子元素节:添加一个新城市<City>南阳</City>
Document document = Dom4JUtils.getDocument();
//获取根元素
Element rootElement = document.getRootElement();
//添加元素
Element cityElement = rootElement.addElement("City");
//设置文本
cityElement.setText("南阳");
//写回文件
Dom4JUtils.write2XML(document);
}

private static void method4() throws Exception, IOException {
//6、删除指定元素节点:删除元素开封
Document document = Dom4JUtils.getDocument();
//获取根元素
Element rootElement = document.getRootElement();
//获取根元素下的所有子元素
List<Element> es = rootElement.elements();
Element cityElement = es.get(1);
//无法自杀,找他爹
Element parentElement = cityElement.getParent();
parentElement.remove(cityElement);
//写回文件
Dom4JUtils.write2XML(document);
}

private static void method3() throws Exception, IOException {
//3、修改某个元素节点的主体内容:信阳-->安阳
Document document = Dom4JUtils.getDocument();
//获取根元素
Element rootElement = document.getRootElement();
//获取根元素下的所有子元素
List<Element> es = rootElement.elements();
//根据索引可以获取指定的元素
Element cityElement = es.get(3);
//修改文本
cityElement.setText("安阳");
//写回文件
Dom4JUtils.write2XML(document);
}

private static void method2() throws Exception {
//2、遍历所有元素节点:打印他们的元素名称。
//获取根元素
Document document = Dom4JUtils.getDocument();
Element rootElement = document.getRootElement();
treeWalk(rootElement);
}

public static void treeWalk(Element element) {
//输出元素的名称
System.out.println(element.getName());
//获取指定元素的所有子元素
List<Element> es = element.elements();
for (Element e : es) {
treeWalk(e);
}
}

private static void method() throws Exception {
//1、得到某个具体的节点内容:打印"郑州"
Document document = Dom4JUtils.getDocument(); 
//获取根元素
Element rootElement = document.getRootElement();
//获取根元素下的所有子元素
List<Element> elements = rootElement.elements();
//根据索引获取第一个City元素
Element cityElement = elements.get(0);
//根据子元素的名称来获取子元素的文本
String text = cityElement.elementText("Name");
System.out.println(text);
}
 

}


注: 可参考dom4j的apidocs,里面很详细.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值