JDOM 和 DOM4J
来源:互联网 发布:淘宝找不到自己的品牌 编辑:程序博客网 时间:2024/06/05 10:36
對於xml文件
<?xml version="1.0" encoding="UTF-8"?><Employees> <Employee id="1"> <age>29</age> <name>Pankaj</name> <gender>Male</gender> <role>Java Developer</role> </Employee> <Employee id="2"> <age>35</age> <name>Lisa</name> <gender>Female</gender> <role>CEO</role> </Employee> <Employee id="3"> <age>40</age> <name>Tom</name> <gender>Male</gender> <role>Manager</role> </Employee></Employees>
JDOM:public void test() throws Exception {
// 1 创建 DOM DocumentBuilder工厂
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
// 2 创建DOM DocumentBuilder类
DocumentBuilder dBuilder = null;
dBuilder = dbFactory.newDocumentBuilder();
// 3 创建Document类
Document doc = dBuilder.parse(new File("/home/rjm/Desktop/mytest.xml"));
// 4 创建DOMBuilder
DOMBuilder domBuilder = new DOMBuilder();
// 5 创建DOM文档
org.jdom2.Document jdomDoc = domBuilder.build(doc);
// 6 获取根Element
Element root = jdomDoc.getRootElement();
// 7 获取子元素列表
List<Element> empListElements = root.getChildren();
List<Employee> empList = new ArrayList<Employee>();
// 8 遍历子元素列表存儲
for (Element empElement : empListElements) {
Employee emp = new Employee();
emp.setId(Integer.parseInt(empElement.getAttributeValue("id")));
emp.setAge(Integer.parseInt(empElement.getChildText("age")));
emp.setName(empElement.getChildText("name"));
emp.setRole(empElement.getChildText("role"));
emp.setGender(empElement.getChildText("gender"));
empList.add(emp);
}
// 7 打印
for (Employee emp : empList) {
System.out.println(emp);
}
}
class Employee {
private int id;
private String name;
private String gender;
private int age;
private String role;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public String toString() {
return "Employee:: ID=" + this.id + " Name=" + this.name + " Age=" + this.age + " Gender=" + this.gender
+ " Role=" + this.role;
}
}
DOM4J:
1.读取
public void Dom4j() throws Exception {
InputStream in = new FileInputStream("/home/rjm/Desktop/mytest.xml");
// 1 創建SAXReader讀取器
SAXReader saxReader = new SAXReader();
// 2 讀入xml輸入流
org.dom4j.Document document = saxReader.read(in);
// 3 獲取根結點
org.dom4j.Element rootElement = document.getRootElement();
// 4 獲取根結點屬性
System.out.println("根結點名字:" + rootElement.getName());
System.out.println("根結點屬性數量:" + rootElement.attributeCount());
System.out.println("根結點屬性:" + rootElement.attributeValue("id"));
// System.out.println("根結點內容:"+rootElement.getText());
// System.out.println("根結點子結點的內容"+rootElement.getStringValue());
// 5 獲取子結點
List<org.dom4j.Element> list=new ArrayList<org.dom4j.Element>();
list= rootElement.elements("Employee");
for(org.dom4j.Element childElement:list)
System.out.println("子結點內容"+childElement.getStringValue());
}
2.输入
public void createXml() throws Exception {
// DocumentHelper提供了創建Document對象的方式
org.dom4j.Document document = DocumentHelper.createDocument();
// 添加結點信息
org.dom4j.Element rootElement = document.addElement("modules");
rootElement.setText("這個時modules結點的文本信息");
org.dom4j.Element element = rootElement.addElement("module");
org.dom4j.Element nameElement = element.addElement("name");
org.dom4j.Element valueElement = element.addElement("valus");
org.dom4j.Element descriptionElement = element.addElement("description");
nameElement.setText("名稱");
nameElement.addAttribute("language", "java");
valueElement.setText("值");
valueElement.addAttribute("language", "c#");
descriptionElement.setText("描述");
descriptionElement.addAttribute("language", "sql server");
System.out.println(document.asXML());
Writer fileWriter = new FileWriter("/home/rjm/Desktop/test1.xml");
// dom4j提供了專門寫入文件的對象WMLWriter
XMLWriter xmlWriter=new XMLWriter(fileWriter);
xmlWriter.write(document);
xmlWriter.flush();
xmlWriter.close();
System.out.println("添加成功");
}
參考:http://blog.csdn.net/rongbo_j/article/details/50320689
參考:http://blog.csdn.net/chenghui0317/article/details/11486271
- JDOM和DOM4J了解
- JDOM 和 DOM4J
- 使用dom4j和jdom读取xml文件
- 使用JDOM和DOM4j解析XML
- DOM、SAX、JDOM和DOM4J--简单介绍
- 解析XML的 - dom4j 和 jdom
- XML解析-Dom4j和jdom(四)
- SAX/DOM、JAXP、JDOM和DOM4J
- sax、dom和dom4j、jdom区别
- 实例分析jdom和dom4j的使用和区别
- jDom 和dom4j 输出的中文乱码的解决方案
- JDOM和DOM4J解析含有XML字符串的不同方式
- jDom 和dom4j 输出的中文乱码的解决方案
- 用SAX、DOM、JDOM和DOM4J读写XML文件
- DOM4J、DOM、JDOM和SAX之间的比较
- 对JDOM和DOM4J读取同名元素的区别
- DOM,SAX,JDOM,DOM4J
- JDOM、Dom4j操作XML
- 从0到1学习node(七)之express搭建简易论坛
- Leetcode 322. Coin Change
- Reactive Programming with RxJava-Chapter3:Operators and Transformations(2)
- lstm
- 子类调用父类构造器时的Java类成员初始化顺序
- JDOM 和 DOM4J
- 反射问题
- C和C++中字符串操作
- 《CSS权威指南第三版》第五章的读书笔记
- Web基础之Ajax
- Implement Trie (Prefix Tree)
- MongoDB游标的基本操作
- leetcode3. Longest Substring Without Repeating Characters
- [Spring实战系列]