import java.io.*; import java.util.*; import javax.xml.parsers.*; import org.w3c.dom.*; import org.apache.crimson.tree.XmlDocument; /** *
Title:
*Description:
*Copyright: Copyright (c) 2003
*Company:
* @author unascribed * @version 1.0 */ public class XMLTest { Vector student_Vector; private void readXMLFile(String inFile) throws Exception { // prepare for parseXML, create DocumentBuilderFactory instance,assgin DocumentBuilder DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = null; try { db = dbf.newDocumentBuilder(); } catch (ParserConfigurationException pce) { System.err.println(pce); System.exit(1); } Document doc = null; try { doc = db.parse(inFile); } catch (DOMException dom) { System.err.println(dom.getMessage()); System.exit(1); } catch (IOException ioe) { System.err.println(ioe); System.exit(1); } //parse XML Element root = doc.getDocumentElement(); NodeList students = root.getElementsByTagName("student"); for (int i = 0; i < students.getLength(); i++) { // Element student = (Element) students.item(i); // StudentBean studentBean = new StudentBean(); // studentBean.setSex(student.getAttribute("sex")); // NodeList names = student.getElementsByTagName("name"); if (names.getLength() == 1) { Element e = (Element) names.item(0); Text t = (Text) e.getFirstChild(); studentBean.setName(t.getNodeValue()); } NodeList ages = student.getElementsByTagName("age"); if (ages.getLength() == 1) { Element e = (Element) ages.item(0); Text t = (Text) e.getFirstChild(); studentBean.setAge(Integer.parseInt(t.getNodeValue())); } NodeList phones = student.getElementsByTagName("phone"); if (phones.getLength() == 1) { Element e = (Element) phones.item(0); Text t = (Text) e.getFirstChild(); studentBean.setPhone(t.getNodeValue()); } student_Vector.add(studentBean); } } private void writeXMLFile(String outFile) throws Exception { // DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = null; try { db = dbf.newDocumentBuilder(); } catch (ParserConfigurationException pce) { System.err.println(pce); System.exit(1); } Document doc = null; doc = db.newDocument(); // Element root = doc.createElement("roster"); // doc.appendChild(root); // for (int i = 0; i < student_Vector.size(); i++) { // StudentBean studentBean = (StudentBean) student_Vector.get(i); // Element student = doc.createElement("Person"); student.setAttribute("gender", studentBean.getSex()); root.appendChild(student); // Element name = doc.createElement("FallName"); student.appendChild(name); Text tName = doc.createTextNode(studentBean.getName()); name.appendChild(tName); Element age = doc.createElement("Age"); student.appendChild(age); Text tAge = doc.createTextNode(String.valueOf(studentBean.getAge())); age.appendChild(tAge); Element phone = doc.createElement("Tele"); student.appendChild(phone); Text tPhone = doc.createTextNode(studentBean.getPhone()); phone.appendChild(tPhone); } // FileOutputStream outStream = new FileOutputStream(outFile); OutputStreamWriter outWriter = new OutputStreamWriter(outStream); ((XmlDocument) doc).write(outWriter, "ISO-8859-1"); outWriter.close(); outStream.close(); } public static void main(String[] args) throws Exception { // XMLTest xmlTest = new XMLTest(); // xmlTest.student_Vector = new Vector(); System.out.println("reading Input.xml"); xmlTest.readXMLFile("Input.xml"); System.out.println("Input read, writing Output.xml"); xmlTest.writeXMLFile("Output.xml"); System.out.println("Finished"); } } // end of class XMLTest