JDOM对xml文件的读写

1. 读取例子

 

  xml文件代码

<?xml version="1.0" encoding="UTF-8"?>
<sys-configure>
	<jdbc-info>
		<dirver-class-name>oracle.jdbc.driver.OracleDriver</dirver-class-name>
		<url>jdbc:oracle:thin:@127.0.0.1:1521:sxt</url>
		<user-name>username</user-name>
		<password>password</password>
	</jdbc-info>
	<beans>
		<bean id = "id1" class = "class1"/>
		<bean id = "id2" class = "class2"/>
	</beans>
</sys-configure>

 jdom 读取代码

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.Text;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;


public class XMLReader {
	//单例
	private static XMLReader  instance = new XMLReader();
	
	private static final String CONFIG_NAME = "src/test/jdom/config.xml";
	
	private Element elt;
	
	private XMLReader(){
		SAXBuilder sb = new SAXBuilder();
		try {
//			先获取文件对象
			Document doc = sb.build(new File(CONFIG_NAME));
			this.elt = doc.getRootElement();
			initJdbc();
		} catch (JDOMException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	public static XMLReader getInstance(){
		return instance;
	}
	
	private  void initJdbc(){
		try {
			Element element = (Element)XPath.selectSingleNode(elt, "//sys-configure/jdbc-info/dirver-class-name");
			System.out.println(element.getText());
		} catch (JDOMException e) {
			e.printStackTrace();
		}
		
	}
	public static void main(String [] args){
		XMLReader.getInstance();
		SAXBuilder builder = new SAXBuilder();
        try {
			Document doc = builder.build(new File(CONFIG_NAME));
			XPath rolePath = XPath.newInstance("//jdbc-info/password/text()");
			List list = rolePath.selectNodes(doc);
			Iterator iter = list.iterator();
			while(iter.hasNext()){
				System.out.println((Text)iter.next());
			}
		} catch (JDOMException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

2. jdom写xml文件的例子

 

 代码如下

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;

/**
 * 	<selects>
 * 		<select>
 * 			<id>1</id>
 * 			<name>吉林</name>
 * 		</select>
 *  </selects> 
 *
 */
public class XMLWriter {
	
	public static void main(String [] args){
		//生成元素
		Element rootElt = new Element("selects");
		Element selcetElt = new Element("select");
		Element idElt = new Element("id");
		idElt.setText("1");
		
		Element nameElt = new Element("name");
		nameElt.setText("吉林省");
		
		//添加关系
		selcetElt.addContent(idElt);
		selcetElt.addContent(nameElt);
		
		rootElt.addContent(selcetElt);
		
		//输出xml
		
		Document document = new Document(rootElt);
		XMLOutputter out = new  XMLOutputter();
		//默认的encoding="UTF-8",可以修改如下
		//out.setFormat(Format.getCompactFormat().setEncoding("gbk"));
		
		System.out.println(out.outputString(document));
		
		try {
			//写到指定的文件
			out.output(document, new FileOutputStream("c:\\xml.txt"));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值