關於dom4j對xml檔案實現增刪改創的操作
對xml操作的方式很多,這裡主要講的是dom4j.jar對xml的解析方式,以及一些常規操作,原始碼很簡單。
建立xml截圖:
插入資訊後截圖:
增加的事科教節點。
修改資訊截圖:
移除資訊截圖:
以上截圖是程式碼實現的對整個xml的簡單建立,程式碼簡單,切勿見怪。具體參看程式碼註釋。
package trs.li.parsexml;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**解析xml檔案
* @author trsli
* 該類主要是個人簡單學習dom4j.jar關於解析xml的方式,不具備實用性
* 節點深度在一定程度上會增加難度,這裡我就採用了兩層,這是一大敗筆。
* */
public class ParseXMLDemo {
public static void main(String[] args) {
try {
//createXML();//1建立
//insertXML();//2插入資訊
//modifyXML();//3修改
delXML();//4移除
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**建立xml檔案
* 注:剛開始在這裡犯了一個錯誤,後來才知道只有跟節點才是通過document.addElement()建立的
* 由於操作的大致方式與javascript DOM操作類似,所以學習解析xml對於學javascript還是很有好處的
* */
private static void createXML() throws Exception{
String filename="E:\\book.xml";
Document document=DocumentHelper.createDocument();
Element element=document.addElement("books");
element.addAttribute("id", "books");
element.addComment("這是一行註釋");
Element celement=element.addElement("book");
celement.addComment("這是一個節點");
celement.addAttribute("value", "小說");
celement.setText("紅樓夢");
//element.add(celement);
Element element1=element.addElement("book");
element1.addAttribute("value", "技術");
element1.setText("C++");
//element.add(element1);
Element element2=element.addElement("book");
element2.addAttribute("value", "教材");
element2.setText("語文");
//element.add(element2);
XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(new File(filename)));
xmlWriter.write(document);
System.out.println("建立成功...");
xmlWriter.close();
}
/**向xml中插入新資料
* addComment()為增加註釋
* */
private static void insertXML()throws Exception {
Document document=null;
SAXReader reader=new SAXReader();
document=reader.read("E:\\book.xml");
Element element=document.getRootElement();//獲取根節點
//Element ele=element.element("books");
Element book=element.addElement("book");
book.addComment("這是追加的");
book.addAttribute("value", "科教");
book.setText("星球大戰");
XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(new File("E:\\book.xml")));
xmlWriter.write(document);
System.out.println("插入成功....");
}
/**修改xml文字
* 這裡主要是修改屬性和節點文字資訊
* */
private static void modifyXML()throws Exception {
Document document=null;
SAXReader reader=new SAXReader();
document=reader.read("E:\\book.xml");
List list=document.selectNodes("/books/book/@value");//查詢屬性
Iterator it=list.iterator();
while(it.hasNext()){
Attribute attr=(Attribute)it.next();//屬性遍歷
if(attr.getValue().equals("科教")){
System.out.println("開始修改....");
attr.setValue("科幻小說");
}
}
//查詢結點
List list1=document.selectNodes("/books/book");
Iterator it1=list1.iterator();
while(it1.hasNext()){
Element element=(Element) it1.next();//節點遍歷
if(element.getText().equals("語文")){
System.out.println("開始修改2.....");
element.setText("數學");
}
}
XMLWriter xmlwriter = new XMLWriter(new FileOutputStream("E:\\book.xml"));
xmlwriter.write(document);
System.out.println("完成....");
xmlwriter.close();
}
/**刪除xml內容
* 如果有更加深的節點需要刪除,可以採用多層遍歷
* */
private static void delXML()throws Exception{
Document document=null;
SAXReader reader=new SAXReader();
document=reader.read("E:\\book.xml");
Element root=document.getRootElement();
List list=document.selectNodes("/books/book");
Iterator it=list.iterator();
while(it.hasNext()){
Element element=(Element) it.next();
if(element.getText().equals("數學")){
System.out.println("刪除...");
root.remove(element);
}
}
XMLWriter xmlwriter = new XMLWriter(new FileOutputStream("E:\\book.xml"));
xmlwriter.write(document);
System.out.println("刪除成功...");
xmlwriter.close();
}
}
文章完。
相關文章
- node+express對本地檔案的增刪改查操作Express
- MongoDB工具類:java操作對檔案的增刪查改MongoDBJava
- 關於ToDolist 的增刪改查 用jQuery來實現jQuery
- 使用express+mongoose對mongodb實現增刪改查操作ExpressMongoDB
- Go實現對MySQL的增刪改查GoMySql
- JSP實現servlet對資料庫的增刪查改操作JSServlet資料庫
- Java實現簡單的增刪改查操作Java
- SQLAlchemy - 模組檔案以及增刪改查(CURD操作)SQL
- C# XML基礎入門(XML檔案內容增刪改查清)C#XML
- ASP.NET中利用Repeater實現增刪改操作ASP.NET
- 基於Koa(nodejs框架)對json檔案進行增刪改查NodeJS框架JSON
- Java對txt檔案內容的增刪該查操作Java
- Node+Vue實現對資料的增刪改查Vue
- mybatis中的增刪改操作MyBatis
- Dom4j 操作 XMLXML
- dom4j讀寫xml檔案XML
- asp.net 對xml檔案的讀寫,新增,修改,刪除操作ASP.NETXML
- golang使用go-sql-driver實現mysql增刪改操作GolangMySql
- js實現表格的增刪改查JS
- MongoDB增刪改查操作MongoDB
- 關於mongodb資料庫的增刪改查MongoDB資料庫
- jQuery實現的對元素的增刪改查程式碼例項jQuery
- Java DOM4J 方式解析XML檔案JavaXML
- 利用dom4j來生成xml檔案XML
- SpringMVC+Spring Data JPA實現增刪改查操作SpringMVC
- FMDB | 實現資料的增刪改查
- PHP操作MongoDB(增刪改查)PHPMongoDB
- Node.js(nodejs)對本地JSON檔案進行增、刪、改、查操作(輕車熟路)Node.jsNodeJSJSON
- gRPC 的增刪改查系列之.proto檔案RPC
- 運用layui實現增刪改查UI
- 使用dom4j 解析, 操作XMLXML
- jQuery實現購物車的增刪改查jQuery
- OpenCV學習筆記(六)——對XML和YAML檔案實現I/O操作OpenCV筆記XMLYAML
- .NET使用P/Invoke來實現登錄檔的增、刪、改、查功能
- Android 中關於增刪改查資料庫表實踐Android資料庫
- mysql資料增刪改查操作MySql
- MySQL基礎操作(增刪改查)MySql
- JS字串操作之增刪改查JS字串