如何在Java中创建具有特定结构的XML文件

我想用Java创建XML文件。

我的XML文件结构:

   chrome http:fut abcd john abcd123 Tim  Anhorn, Irene 20131201 20131201 0800 20131201 1600   Arlegui, Karen Jay 20131201 20131201 1600 20131202 0000   

您可以在Java中使用JDOM库。 将标记定义为Element对象,使用Document Class记录元素,并使用SAXBuilder构建xml文件。 试试这个例子:

 Element root=new Element("CONFIGURATION"); Document doc=new Document(); Element child1=new Element("BROWSER"); child1.addContent("chrome"); Element child2=new Element("BASE"); child1.addContent("http:fut"); Element child3=new Element("EMPLOYEE"); child3.addContent(new Element("EMP_NAME").addContent("Anhorn, Irene")); root.addContent(child1); root.addContent(child2); root.addContent(child3); doc.setRootElement(root); XMLOutputter outter=new XMLOutputter(); outter.setFormat(Format.getPrettyFormat()); outter.output(doc, new FileWriter(new File("myxml.xml"))); 
 public static void main(String[] args) { try { DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); Document doc = docBuilder.newDocument(); Element rootElement = doc.createElement("CONFIGURATION"); doc.appendChild(rootElement); Element browser = doc.createElement("BROWSER"); browser.appendChild(doc.createTextNode("chrome")); rootElement.appendChild(browser); Element base = doc.createElement("BASE"); base.appendChild(doc.createTextNode("http:fut")); rootElement.appendChild(base); Element employee = doc.createElement("EMPLOYEE"); rootElement.appendChild(employee); Element empName = doc.createElement("EMP_NAME"); empName.appendChild(doc.createTextNode("Anhorn, Irene")); employee.appendChild(empName); Element actDate = doc.createElement("ACT_DATE"); actDate.appendChild(doc.createTextNode("20131201")); employee.appendChild(actDate); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new File("/Users/myXml/ScoreDetail.xml")); transformer.transform(source, result); System.out.println("File saved!"); } catch (ParserConfigurationException pce) { pce.printStackTrace(); } catch (TransformerException tfe) { tfe.printStackTrace();}} 

XML中的值是硬编码的。

使用JAXB: http : //www.mkyong.com/java/jaxb-hello-world-example/

 package com.mkyong.core; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class Customer { String name; int age; int id; public String getName() { return name; } @XmlElement public void setName(String name) { this.name = name; } public int getAge() { return age; } @XmlElement public void setAge(int age) { this.age = age; } public int getId() { return id; } @XmlAttribute public void setId(int id) { this.id = id; } } 
 package com.mkyong.core; import java.io.File; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; public class JAXBExample { public static void main(String[] args) { Customer customer = new Customer(); customer.setId(100); customer.setName("mkyong"); customer.setAge(29); try { File file = new File("C:\\file.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); // output pretty printed jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); jaxbMarshaller.marshal(customer, file); jaxbMarshaller.marshal(customer, System.out); } catch (JAXBException e) { e.printStackTrace(); } } } 

不需要任何外部库,JRE系统库提供您所需的一切。

我推断你有一个想要写入文件的org.w3c.dom.Document对象

为此,您使用javax.xml.transform.Transformer

 import org.w3c.dom.Document import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; public class XMLWriter { public static void writeDocumentToFile(Document document, File file) { // Make a transformer factory to create the Transformer TransformerFactory tFactory = TransformerFactory.newInstance(); // Make the Transformer Transformer transformer = tFactory.newTransformer(); // Mark the document as a DOM (XML) source DOMSource source = new DOMSource(document); // Say where we want the XML to go StreamResult result = new StreamResult(file); // Write the XML to file transformer.transform(source, result); } } 

资料来源: http : //docs.oracle.com/javaee/1.4/tutorial/doc/JAXPXSLT4.html