用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文件操作!








原文地址:https://www.cnblogs.com/javawebsoa/p/3091795.html