用jdom來解析xml文件小Demo

JDOM是一種使用 XML 的獨特 Java 工具包,用於快速開發 XML 應用程序。它的設計包含 Java 語言的語法乃至語義。

點擊下載jdom jar包

自己做了個java工程例子先介紹下文件結構:


我xml文檔是放在src目錄下面的,具體內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<root>
 <person id="1">
  <username>ydcun</username>
  <password>123123</password>
 </person>
 <person id="2">
  <username>1111111112</username>
  <password>password2</password>
 </person>
 
</root>

下面就是我用jdom工具來操作xml文件了,我只寫了遍歷,刪除和添加節點的例子;相信大家一看就明白修改怎麼寫了:

package com.ydcun.test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;

public class TestDemo {
	private static Document document; // 存放讀取的文件
	private static String path = "src/struts.xml"; // 文件存放路徑
	//加載文件
	public TestDemo() throws Exception {
		SAXBuilder bulider = new SAXBuilder();
		InputStream inSt = new FileInputStream(path);
		document = bulider.build(inSt);
	}
	//遍歷解析文檔
	public void xmlParse(){
		
		
		Element root = document.getRootElement();		//獲取根節點對象
		List<Element> list = root.getChildren();
		for(Element el: list){
			System.out.println("id="+el.getAttributeValue("id"));
			System.out.println("  name:"+el.getChildText("username"));
			System.out.println("  password:"+el.getChildText("password"));
		}

	}
	//添加節點
	public  void addElement() throws  Exception{
		//創建一個person節點
		Element el = new Element("person");
		el.setAttribute("id","3");
		//創建username節點
		Element elName = new Element("username");
		elName.setText("qiqi");
		///創建password節點
		Element elPassword = new Element("password");
		elPassword.setText("123456");
		//將username,password添加到person節點內
		el.addContent(elName);
		el.addContent(elPassword);
		
		//獲取根節點將person節點添加到根節點內
		Element root = document.getRootElement();
		root.addContent(el);
		document.setRootElement(root);
		
		//將添加的保存到文件中
		XMLOutputter out = new XMLOutputter();
		out.output(document, new FileOutputStream(path));
		
	}
	//刪除節點
	public void deleteElement(int id) throws Exception{
		Element root = document.getRootElement();
		List<Element> list = root.getChildren();
		for(Element el : list){
			if(el.getAttributeValue("id").equals(id+"")){
				root.removeContent(el);	//將符合條件的節點刪除
			}
		}
		XMLOutputter out = new XMLOutputter();
		out.output(document, new FileOutputStream(path));
	
	}
	public static void main(String[] args) throws Exception {
		TestDemo td = new TestDemo();
//		td.addElement();//添加節點
//		td.xmlParse();//便利xml文件
		td.deleteElement(3);//刪除節點
	}
}

通過上面的操作我們很容易掌握xml文件操作!








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章