日出星辰

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

          創建一個接口

          XmlInterface.java

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

          接口實現

          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);    //創建xml
          		dd.parserXml(str);    //讀取xml
          	}
          }
          

          結果

          生成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 日出星辰 閱讀(204) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 儋州市| 岚皋县| 嘉善县| 望都县| 左贡县| 淅川县| 凌源市| 从化市| 融水| 灵山县| 石阡县| 宁蒗| 光山县| 遂溪县| 富蕴县| 皮山县| 临潭县| 会宁县| 家居| 抚顺县| 包头市| 门源| 钦州市| 临江市| 塔城市| 大渡口区| 三穗县| 敦化市| 双流县| 双辽市| 彰化市| 徐闻县| 额尔古纳市| 茶陵县| 都昌县| 枣阳市| 顺义区| 家居| 彰武县| 阜城县| 曲沃县|