日出星辰

          Java讀取、創(chuàng)建xml(通過dom方式)

          創(chuàng)建一個接口

          XmlInterface.java

          public interface XmlInterface {
          
          		/** 
          		* 建立XML文檔 
          		* @param fileName 文件全路徑名稱 
          		*/ 
          		public void createXml(String fileName); 
          		/** 
          		* 解析XML文檔 
          		* @param fileName 文件全路徑名稱 
          		*/ 
          		public void parserXml(String fileName); 
          }
          

          接口實現(xiàn)

          XmlImpl.java

          package com.test.xml;
          
          import java.io.FileNotFoundException;
          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.io.PrintWriter;
          import javax.xml.parsers.DocumentBuilder;
          import javax.xml.parsers.DocumentBuilderFactory;
          import javax.xml.parsers.ParserConfigurationException;
          import javax.xml.transform.OutputKeys;
          import javax.xml.transform.Transformer;
          import javax.xml.transform.TransformerConfigurationException;
          import javax.xml.transform.TransformerException;
          import javax.xml.transform.TransformerFactory;
          import javax.xml.transform.dom.DOMSource;
          import javax.xml.transform.stream.StreamResult;
          import org.w3c.dom.Document;
          import org.w3c.dom.Element;
          import org.w3c.dom.Node;
          import org.w3c.dom.NodeList;
          import org.xml.sax.SAXException;
          
          public class XmlImpl implements XmlInterface{
          	private Document document;
          
          	public void init() {
          		try {
          			DocumentBuilderFactory factory = DocumentBuilderFactory
          					.newInstance();
          			DocumentBuilder builder = factory.newDocumentBuilder();
          			this.document = builder.newDocument();
          		} catch (ParserConfigurationException e) {
          			System.out.println(e.getMessage());
          		}
          	}
          
          	public void createXml(String fileName) {
          		Element root = this.document.createElement("scores"); 
          		this.document.appendChild(root); 
          		Element employee = this.document.createElement("employee"); 
          		Element name = this.document.createElement("name"); 
          		name.appendChild(this.document.createTextNode("wangchenyang")); 
          		employee.appendChild(name); 
          		Element sex = this.document.createElement("sex"); 
          		sex.appendChild(this.document.createTextNode("m")); 
          		employee.appendChild(sex); 
          		Element age = this.document.createElement("age"); 
          		age.appendChild(this.document.createTextNode("26")); 
          		employee.appendChild(age); 
          		root.appendChild(employee); 
          		TransformerFactory tf = TransformerFactory.newInstance();
          		try {
          			Transformer transformer = tf.newTransformer();
          			DOMSource source = new DOMSource(document);
          			transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312");
          			transformer.setOutputProperty(OutputKeys.INDENT, "yes");
          			PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
          			StreamResult result = new StreamResult(pw);
          			transformer.transform(source, result);
          			System.out.println("生成XML文件成功!");
          		} catch (TransformerConfigurationException e) {
          			System.out.println(e.getMessage());
          		} catch (IllegalArgumentException e) {
          			System.out.println(e.getMessage());
          		} catch (FileNotFoundException e) {
          			System.out.println(e.getMessage());
          		} catch (TransformerException e) {
          			System.out.println(e.getMessage());
          		}
          	}
          
          	public void parserXml(String fileName) {
          		try {
          			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
          			DocumentBuilder db = dbf.newDocumentBuilder();
          			Document document = db.parse(fileName);
          			
          			NodeList employees = document.getChildNodes();
          			for (int i = 0; i < employees.getLength(); i++) {
          				Node employee = employees.item(i);
          				NodeList employeeInfo = employee.getChildNodes();
          				for (int j = 0; j < employeeInfo.getLength(); j++) {
          					Node node = employeeInfo.item(j);
          					NodeList employeeMeta = node.getChildNodes();
          					for (int k = 0; k < employeeMeta.getLength(); k++) {
          						System.out.println(employeeMeta.item(k).getNodeName()
          								+ ":" + employeeMeta.item(k).getTextContent());
          					}
          				}
          			}
          			System.out.println("解析完畢");
          		} catch (FileNotFoundException e) {
          			System.out.println(e.getMessage());
          		} catch (ParserConfigurationException e) {
          			System.out.println(e.getMessage());
          		} catch (SAXException e) {
          			System.out.println(e.getMessage());
          		} catch (IOException e) {
          			System.out.println(e.getMessage());
          		}
          	}
          }
          

          測試

          public class Main {
          
          	public static void main(String args[]){
          		XmlImpl dd=new XmlImpl();
          		String str="D:/grade.xml";
          		dd.init();
          		dd.createXml(str);    //創(chuàng)建xml
          		dd.parserXml(str);    //讀取xml
          	}
          }
          

          結(jié)果

          生成xml

          <?xml version="1.0" encoding="GB2312"?>
          <scores>
          <employee>
          <name>wangchenyang</name>
          <sex>m</sex>
          <age>26</age>
          </employee>
          </scores>

          讀取xml

          生成XML文件成功!
          #text:
          
          name:wangchenyang
          #text:
          
          sex:m
          #text:
          
          age:26
          #text:
          
          解析完畢
          


           

           

           

           

          posted on 2011-08-23 14:34 日出星辰 閱讀(207) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 杨浦区| 南乐县| 威海市| 绥德县| 赫章县| 竹山县| 德惠市| 乳山市| 临沧市| 民乐县| 土默特右旗| 正阳县| 汝城县| 南投市| 渭南市| 永胜县| 从化市| 上犹县| 太原市| 乌拉特前旗| 富锦市| 波密县| 封开县| 通化市| 开原市| 洱源县| 兴和县| 荥经县| 汾阳市| 广州市| 桃园市| 新郑市| 金塔县| 白山市| 彭泽县| 古丈县| 广宁县| 静宁县| 彭阳县| 北京市| 五家渠市|