java中的Xml文件生成器

我想创建一个java swing应用程序,我可以在其中生成包含相同数据的xml文件,生成的文件数将由user决定。我的xml文件包含xml架构,我的xml文件struture看起来像这样

                                  smith 1234567   2011-06-24T17:08:36.3727674+05:30 book   2011-06-24T17:08:36.3727674+05:30 game   

我是java新手,如果有人提供一些代码snipes帮助,它对我更有帮助。

我想生成包含xml架构的xml文件,该架构在我的示例xml中给出。

在java中,您使用JAXP来处理XML。 您使用DOM相关的类来生成xml。 下面是使用JAXP创建XML的一个小例子。

 import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; 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.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; public class WriteXMLFile { public static void main(String argv[]) { try { DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); // root elements Document doc = docBuilder.newDocument(); Element rootElement = doc.createElement("company"); doc.appendChild(rootElement); // staff elements Element staff = doc.createElement("Staff"); rootElement.appendChild(staff); // set attribute to staff element Attr attr = doc.createAttribute("id"); attr.setValue("1"); staff.setAttributeNode(attr); // shorten way // staff.setAttribute("id", "1"); // firstname elements Element firstname = doc.createElement("firstname"); firstname.appendChild(doc.createTextNode("yong")); staff.appendChild(firstname); // lastname elements Element lastname = doc.createElement("lastname"); lastname.appendChild(doc.createTextNode("mook kim")); staff.appendChild(lastname); // nickname elements Element nickname = doc.createElement("nickname"); nickname.appendChild(doc.createTextNode("mkyong")); staff.appendChild(nickname); // salary elements Element salary = doc.createElement("salary"); salary.appendChild(doc.createTextNode("100000")); staff.appendChild(salary); // write the content into xml file TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new File("C:\\file.xml")); // Output to console for testing // StreamResult result = new StreamResult(System.out); transformer.transform(source, result); System.out.println("File saved!"); } catch (ParserConfigurationException pce) { pce.printStackTrace(); } catch (TransformerException tfe) { tfe.printStackTrace(); } } } 

我的个人博客上有一篇较旧的post,概述了用Java生成XML的几种不同方法: http : //blogger.ziesemer.com/2007/06/xml-generation-in-java.html

基本上,一些常用的选项是JAXP,DOM,SAX(一种用于生成的hack,但它可以工作),StAX,XSLT或XML绑定选项(JAXB) – 我在post中没有介绍。

由于您已经有一个XML模式可供使用,JAXB可能适合您。 否则,我可能会将StAX作为新的高效API之一。