2014-05-07 2 views
17

में विशिष्ट संरचना के साथ एक्सएमएल फ़ाइल कैसे बनाएं, मैं Java का उपयोग कर XML फ़ाइल बनाना चाहता हूं।जावा

मेरे XML फ़ाइल संरचना:

<?xml version="1.0" encoding="UTF-8"?> 
<CONFIGURATION> 
    <BROWSER>chrome</BROWSER> 
    <BASE>http:fut</BASE> 
    <ENVIRONMENT>abcd</ENVIRONMENT> 
    <USER>john</USER> 
    <PASSWORD>abcd123</PASSWORD> 
    <ORGANIZATION>Tim</ORGANIZATION> 
    <EMPLOYEE> 
     <EMP_NAME>Anhorn, Irene</EMP_NAME> 
     <ACT_DATE>20131201</ACT_DATE> 
     <DATE_IN>20131201</DATE_IN> 
     <CLOCK_IN>0800</CLOCK_IN> 
     <DATE_OUT>20131201</DATE_OUT> 
     <CLOCK_OUT>1600</CLOCK_OUT> 
    </EMPLOYEE> 
    <EMPLOYEE> 
     <EMP_NAME>Arlegui, Karen Jay</EMP_NAME> 
     <ACT_DATE>20131201</ACT_DATE> 
     <DATE_IN>20131201</DATE_IN> 
     <CLOCK_IN>1600</CLOCK_IN> 
     <DATE_OUT>20131202</DATE_OUT> 
     <CLOCK_OUT>0000</CLOCK_OUT> 
    </EMPLOYEE> 
</CONFIGURATION> 
+1

क्या आपने कोई कोड आजमाया है? Http://www.mkyong.com/java/how-to-create-xml-file-in-java-dom/ – Jay

+0

मैंने कोशिश की, लेकिन यह काम नहीं किया :( – user3438838

उत्तर

9

आप जावा में JDOM लाइब्रेरी का उपयोग कर सकते हैं। अपने टैग को Element ऑब्जेक्ट्स के रूप में परिभाषित करें, Document Class के साथ अपने तत्वों को दस्तावेज़ करें, और SAXBuilder के साथ अपनी एक्सएमएल फ़ाइल बनाएं। इस उदाहरण का प्रयास करें:

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"))); 
10

उपयोग 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(); 
     } 

    } 
} 
9

किसी भी बाहरी पुस्तकालयों के लिए कोई जरूरत नहीं है, JRE प्रणाली पुस्तकालयों आप सभी की जरूरत प्रदान करते हैं।

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

16
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();}} 

मैं infering हूँ आप एक org.w3c.dom.Document वस्तु आप चाहते हैं एक फ़ाइल

कि ऐसा करने के लिए लिखने के लिए है, तो आप एक javax.xml.transform.Transformer का उपयोग

आपके एक्सएमएल में मान हार्ड कोडित हैं।

+0

क्या यह जेडीओएम लाइब्रेरी का उपयोग पार्स करने के लिए कर रहा है –

+0

मैं एक एक्सएमएल पार्स करने के लिए डोम पार्सर लिब का उपयोग कर रहा हूं। –