Creating a XML file at RUNTIME using Java
package
com.gaurav.xml.examples;
import
java.io.BufferedReader;
import
java.io.InputStreamReader;
import
javax.xml.parsers.DocumentBuilder;
import
javax.xml.parsers.DocumentBuilderFactory;
import
javax.xml.transform.Transformer;
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;
public class
CreateXmlFileDynamically {
                public static void main(String
args[]) {
                                try {
                                                DocumentBuilderFactory
docFactory = DocumentBuilderFactory
                                                                                .newInstance();
                                                DocumentBuilder
builder = docFactory.newDocumentBuilder();
                                                Document document =
builder.newDocument();
                                                BufferedReader br = new
BufferedReader(new InputStreamReader(
                                                                                System.in));
                                                System.out
                                                                                .println("Enter
the number of Element for XML files: - \n");
                                                int num =
Integer.parseInt(br.readLine());
                                                System.out.println("Enter
the root Element: \n");
                                                String rootElement =
br.readLine();
                                                Element element =
document.createElement(rootElement);
                                                document.appendChild(element);
                                                for (int
i = 1; i <= num; i++) {
                                                                System.out.println("Enter
the Element:- \n");
                                                                String
strElement = br.readLine();
                                                                System.out.println("Enter
the Data: - \n");
                                                                String
strData = br.readLine();
                                                                Element
childElement = document.createElement(strElement);
                                                                childElement.appendChild(document.createTextNode(strData));
                                                                element.appendChild(childElement);
                                                }
                                                TransformerFactory
transFactory = TransformerFactory.newInstance();
                                                Transformer
transformer = transFactory.newTransformer();
                                                DOMSource domSource =
new DOMSource(document);
                                                StreamResult
streamResult = new StreamResult(System.out);
                                                transformer.transform(domSource,
streamResult);
                                } catch (Exception e) {
                                                System.out.println(e.getMessage());
                                }
                }
}
Note:- After the successful execution of above program, the final xml which we will get is as follows:-
<?xml version="1.0"
encoding="UTF-8" standalone="no"?>
<student>
<studentId>1234</studentId>
<studentName>Arnold</studentName>
<birthDate>1985-11-26</birthDate>
</student>
 
How to read the above dynamically created xml file using DOM?
ReplyDelete