import java.io.*;
import org.dom4j.*;
import org.dom4j.io.*;
public class CreateXMLByDom4J
{
public static void main(String args[])throws Exception
{
//创建一个空的文档对象
Document doc=DocumentHelper.createDocument();
//创建一个根元素,数值为emps
Element root=doc.addElement("emps");
//在root下添加一个元素employee,并在employee下添加name元素
//设置其属性id为1,并设置name的值为"张飞"
root.addElement("employee").addAttribute("id","1").addElement("name").addText("张飞");
root.addElement("employee").addAttribute("id","2").addElement("name").addText("关羽");
root.addElement("employee").addAttribute("id","3").addElement("name").addText("刘备");
OutputFormat format=OutputFormat.createPrettyPrint();
XMLWriter w=new XMLWriter(new FileOutputStream("emp.xml"),format);
w.write(doc);
w.close();
}
}
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;
//删除名字叫Jack的用户
public class DelXMLByDom4J
{
public static void main(String args[])throws Exception
{
SAXReader sax=new SAXReader();
Document doc=sax.read("user.xml");
//得到根元素坐标
Element root=doc.getRootElement();
List nodes=doc.selectNodes("//user");
for (int i = 0; i<nodes.size(); i++) {
Element el=(Element)nodes.get(i);
if(el.elementText("username").equals("Jack"))
{
//必须在根元素的坐标点上删除元素才可以
root.remove(el);
}
}
OutputFormat format=OutputFormat.createPrettyPrint();
XMLWriter writer=new XMLWriter(new FileOutputStream("user.xml"),format);
writer.write(doc);
writer.close();
}
}
import org.dom4j.*;
import org.dom4j.io.*;
import java.util.*;
import java.io.*;
//将年龄为30的元素中的username设置为张三(说明对中文的操作也没有任何问题)
public class UpdateXMLByDom4J
{
public static void main(String args[])throws Exception
{
//创建SAXReader的对象
SAXReader sax=new SAXReader();
//读入xml文件,并将其转换为Document类型
Document doc=sax.read("user.xml");
//利用XPath技术得到所有user节点
/**
* 必须导入jaxen.jar
*/
List nodes=doc.selectNodes("//user");
for (int i = 0; i<nodes.size(); i++) {
//得到单个元素
Element el=(Element)nodes.get(i);
//判断其名字是否为Jack
if(el.elementText("age").equals("30"))
{
//得到该元素下的age元素
Element elAge=el.element("username");
elAge.setText("张三");
}
}
//将修改后的Document转换至硬盘
//美化格式,生成的代码有缩进
OutputFormat out=OutputFormat.createPrettyPrint();
XMLWriter writer=new XMLWriter(new FileOutputStream("user.xml"),out);
writer.write(doc);
writer.close();
}
}
import org.dom4j.*;
import org.dom4j.io.*;
import java.io.*;
public class AddXMLByDom4J
{
public static void main(String args[]) throws Exception
{
SAXReader sax=new SAXReader();
Document doc=sax.read("user.xml");
Element root=doc.getRootElement();
Element user=root.addElement("user");
user.addElement("username").addText("李四");
user.addElement("age").addText("21");
OutputFormat out=OutputFormat.createPrettyPrint();
XMLWriter writer=new XMLWriter(new FileOutputStream("user.xml"),out);
writer.write(doc);
writer.close();
}
}
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;
/**
* 取得最后一个元素的属性id值
*/
public class SelectIDByDom4J
{
public static void main(String args[])throws Exception
{
SAXReader sax=new SAXReader();
Document doc=sax.read("emp.xml");
//得到根元素坐标
Element root=doc.getRootElement();
//得到所有employee
List nodes=root.selectNodes("//employee");
//得到元素个数
int size=nodes.size();
//定位到最后一个元素
Element el=(Element)nodes.get(size-1);
//得到该元素所有属性集合
Iterator it=el.attributeIterator();
//循环遍历
while(it.hasNext())
{
//将集合中包含的元素转换为Attribute类型
Attribute att=(Attribute)it.next();
//取出里面的数值
String value=att.getValue();
System.out.println (value);
}
}
}
import org.dom4j.*;
import org.dom4j.io.*;
import java.io.*;
import java.util.*;
public class TestDOM4J
{
public static void main(String args[])throws Exception
{
//得到所有用户信息
SAXReader sax=new SAXReader();
Document doc=sax.read("user.xml");
//得到根元素
Element root=doc.getRootElement();
//得到所有子元素
Iterator it=root.elementIterator();
//循环查看每个元素的内容
System.out.println ("用户名\t\t年龄");
while(it.hasNext())
{
Element el=(Element)it.next();
System.out.println(el.elementText("username")+"\t\t"+el.elementText("age"));
}
}
}
链接:https://pan.baidu.com/s/1lDvezym92uQGNPSf6iqyng
提取码:pgh4