
本文共 5757 字,大约阅读时间需要 19 分钟。
通过Java创建XML文件:详细实现与测试
在Oracle ERP项目开发中,数据的存储和交换通常需要以XML格式进行处理。通过Java程序创建XML文件是非常常见的任务之一。本文将详细介绍如何使用Java的DOM API创建和写入XML文件,并对实现进行测试验证。
一、摘要
通过javax.xml.parsers
和javax.xml.transform
包,可以轻松地创建和写入XML文件。本文将介绍以下步骤:
DocumentBuilderFactory
和DocumentBuilder
创建XML文件并添加根节点FileOutputStream
和OutputStreamWriter
将XML文件写入本地文件系统二、实现分析
1. 创建exportEmployee.java程序
首先,我们需要创建一个Java类exportEmployeeXML
,该类负责将员工信息写入XML文件。以下是类的基本结构:
package bxj.oracle.apps.ap.java;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.io.Writer;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.OutputKeys;import javax.xml.transform.Result;import javax.xml.transform.Source;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.Text;public class exportEmployeeXML { private void ExportEmployeeXML() { try { // 创建文件 File empxmlfile = new File("/u2/VIS/visappl/gavin/employeexml/employeewxml.xml"); // 创建DocumentBuilderFactory和DocumentBuilder DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); Document doc = docBuilder.newDocument(); // 创建根节点 Element root = doc.createElement("Header"); doc.appendChild(root); // 创建EMPLOYEE节点 Element emp = doc.createElement("EMPLOYEE"); root.appendChild(emp); // 创建子节点 Element empid = doc.createElement("EMPLOYEEID"); emp.appendChild(empid); Text empid_text = doc.createTextNode("1"); empid.appendChild(empid_text); Element empnum = doc.createElement("EMPLOYEENUM"); emp.appendChild(empnum); Text empnum_text = doc.createTextNode("FS_0001"); empnum.appendChild(empnum_text); Element empname = doc.createElement("EMPLOYEENAME"); empname.setAttribute("GENDER", "MALE"); emp.appendChild(empname); Text empname_text = doc.createTextNode("BaoXinjian"); empname.appendChild(empname_text); Element emptype = doc.createElement("EMPLOYEETYPE"); emp.appendChild(emptype); Text emptype_text = doc.createTextNode("INTERAL"); emptype.appendChild(emptype_text); Element empcountry = doc.createElement("COUNTRY"); emp.appendChild(empcountry); Text empcountry_text = doc.createTextNode("CN"); empcountry.appendChild(empcountry_text); Element empaddr = doc.createElement("ADDRESS"); emp.appendChild(empaddr); Text empaddr_text = doc.createTextNode("Hangzhou"); empaddr.appendChild(empaddr_text); Element empdesc = doc.createElement("DESCRIPTION"); emp.appendChild(empdesc); Text empdesc_text = doc.createTextNode("Test Employee XML Export"); empdesc.appendChild(empdesc_text); // 输出流 FileOutputStream fos = new FileOutputStream(empxmlfile); OutputStreamWriter osw = new OutputStreamWriter(fos); callDomWriter(doc, osw, "UTF-8"); osw.close(); fos.close(); } catch (Exception ex) { ex.printStackTrace(); } } public void callDomWriter(Document doc, Writer writer, String encoding) { try { Source source = new DOMSource(doc); Result res = new StreamResult(writer); Transformer xformer = TransformerFactory.newInstance().newTransformer(); xformer.setOutputProperty(OutputKeys.ENCODING, encoding); xformer.transform(source, res); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } } public exportEmployeeXML() { } public static void main(String[] args) { System.out.println("gavin main Start"); exportEmployeeXML exportEmployeeXML = new exportEmployeeXML(); exportEmployeeXML.ExportEmployeeXML(); System.out.println("gavin main End"); }}
2. 实现解析的主要过程
创建XML文件:首先,我们需要创建一个新的XML文件。可以使用File
类来指定文件路径,并使用FileOutputStream
来写入文件内容。
DocumentBuilderFactory和DocumentBuilder:通过DocumentBuilderFactory.newInstance()
获取DocumentBuilderFactory
实例,然后调用newDocumentBuilder()
方法获取DocumentBuilder
实例。使用DocumentBuilder.newDocument()
创建一个新的XML文档。
创建节点:
- 使用
document.createElement("节点名称")
创建元素节点。 - 使用
document.createTextNode("节点内容")
创建文本节点。 - 将节点添加到父节点中,例如
element.appendChild(empnum)
。
文件输出流:使用FileOutputStream
和OutputStreamWriter
将XML文件写入本地文件系统。需要注意文件路径的正确性,并确保输出流已正确关闭。
三、运行测试
1. 运行测试
运行上述Java程序,确保以下几点:
javax.xml.parsers
和javax.xml.transform
相关包。2. 确定XML文件
运行完成后,程序会将生成的XML文件写入指定路径。可以通过文件管理工具(如Windows资源管理器)查看生成文件,确保文件格式和内容正确无误。
3. 查看XML文件
使用XML编辑器(如Notepad++、Visual Studio Code等)打开生成的XML文件,检查文件格式是否为<?xml version="1.0"?>
,并确保所有标签正确闭合。如果发现任何问题,需要回去检查代码。
结论
通过上述方法,我们可以轻松地使用Java程序创建和写入XML文件。DOM API提供了强大的工具来操作XML数据,适合处理结构化数据存储和交换。通过本地测试和验证,我们可以确保生成的XML文件格式和内容符合预期。
发表评论
最新留言
关于作者
