dom4j詳情


src/student.xmljava

<?xml version="1.0" encoding="UTF-8" ?>dom

<students>spa

<student number="itcast_0001">.net

<name>tom</name>orm

<age>18</age>xml

<sex>male</sex>對象

</student>element

<student number="itcast_0002">資源

<name>jerry</name>rem

<age>16</age>

<sex>female</sex>

</student>

</students>


import java.io.File;


import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.io.SAXReader;


public class Demo1 {


/**

*  將xml文檔 加載,得到document對象, 

*  將document對象 以字符串的形式輸出

* @throws DocumentException 

*/

public static void main(String[] args) throws DocumentException {

//1 建立解析器 

SAXReader reader = new SAXReader();

    //2 使用解析器,加載文檔

Document document = reader.read(new File("src/student.xml"));

    //3 將文檔對象轉化成string

String xml = document.asXML();

      System.out.println(xml);

}


}


import java.io.File;

import java.util.Iterator;


import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;


public class Demo2 {


/**

* 查 ==> 文檔中全部學生信息

* @throws DocumentException 

*/

public static void main(String[] args) throws DocumentException {

//1 建立解析器 

SAXReader reader = new SAXReader();

    //2 使用解析器,加載文檔

Document document = reader.read(new File("src/student.xml"));

//3 得到根元素

Element students = document.getRootElement();

//4 迭代根元素下的全部student元素

Iterator<Element> it =  students.elementIterator("student");

while(it.hasNext()){

Element student = it.next();

//5 得到student元素上的number屬性

String number =  student.attributeValue("number");

System.out.println(number);

//6 再找 student元素下的name age sex 子元素

//7 得到子元素的內容

Element nameELe = student.element("name");

String name = nameELe.getText();

String age = student.elementText("age");

String sex = student.elementText("sex");

System.out.println(name+"==>"+age+"==>"+sex);

}

}


}



import java.io.File;

import java.io.FileOutputStream;

import java.io.FileWriter;

import java.io.IOException;

import java.io.OutputStreamWriter;


import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.SAXReader;

import org.dom4j.io.XMLWriter;


public class Demo3_2 {


/**

* 增: 增長一個學生   itcast_0003 傑克 20 male

* @throws DocumentException 

* @throws IOException 

*/

public static void main(String[] args) throws DocumentException, IOException {

//1 建立解析器 

SAXReader reader = new SAXReader();

    //2 使用解析器,加載文檔

Document document = reader.read(new File("src/student.xml"));

//3 得到根元素

Element root  = document.getRootElement();

//4 爲根元素添加student子元素,和屬性.

Element studentEle = root.addElement("student").addAttribute("number", "itcast_0003");

//5 爲student添加 name age sex 子元素和內容

studentEle.addElement("name").addText("傑克");

studentEle.addElement("age").addText("20");

studentEle.addElement("sex").addText("male");

//6 回寫

//1>建立格式化器

OutputFormat format = OutputFormat.createPrettyPrint();

format.setEncoding("UTF-8"); //解碼  encoding="UTF-8"

//2>建立寫入器

//XMLWriter writer = new XMLWriter(new FileWriter("src/student_copy.xml"),format);

//XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream("src/student_copy.xml"),"GBK"),format);

XMLWriter writer = new XMLWriter(new FileOutputStream("src/student_copy.xml") ,format);

//3>將文檔寫入文件

writer.write(document);

//4>關閉資源

writer.close();

//簡單的不亂碼的方法: 使用字節流寫入, 不要使用字符流. 使用字節流永遠不會亂碼.

}


}




import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.UnsupportedEncodingException;


import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.SAXReader;

import org.dom4j.io.XMLWriter;


public class Demo4_2 {


/**

*  刪除: 刪除學號爲itcast_0001 的學生

* @throws DocumentException 

* @throws IOException 

*/

public static void main(String[] args) throws DocumentException, IOException {

//1 建立解析器 

SAXReader reader = new SAXReader();

    //2 使用解析器,加載文檔

Document document = reader.read(new File("src/student.xml"));

//3 定義xpath表達式

String xpath ="//student[@number='itcast_0001']";

//4 根據xpath找出要刪除的元素

Element stuEle = (Element) document.selectSingleNode(xpath);

//5 刪除

stuEle.getParent().remove(stuEle);

//6回寫

//1>新建格式化器

OutputFormat format = OutputFormat.createPrettyPrint();

//2>新建寫入器

XMLWriter writer = new XMLWriter(new FileOutputStream("src/student_copy.xml"),format);

//3>寫入

writer.write(document);

//4>關閉資源

writer.close();

}


}

相關文章
相關標籤/搜索