Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package eg.edu.alexu.csd.oop.XML;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.util.*;
- import javax.xml.stream.XMLEventFactory;
- import javax.xml.stream.XMLEventWriter;
- import javax.xml.stream.XMLOutputFactory;
- import javax.xml.stream.XMLStreamException;
- import javax.xml.stream.events.Characters;
- import javax.xml.stream.events.EndElement;
- import javax.xml.stream.events.StartElement;
- import javax.xml.stream.events.XMLEvent;
- public class StaxXMLWriter {
- public static void main(String[] args) {
- String fileName = "C:\\Users\\hp\\Desktop\\College\\OOPAssignments\\DBMS\\OOP_TAs-oop-course-projects-b15818ce512d\\XML\\T.xml";
- String rootElement = "Table";
- StaxXMLWriter xmlWriter = new StaxXMLWriter();
- Map<String,String> elementsMap = new LinkedHashMap<String, String>();
- elementsMap.put("ID", "55510");
- elementsMap.put("Status", "RIP");
- elementsMap.put("Year", "750");
- xmlWriter.writeXML(fileName, rootElement, elementsMap);
- }
- public void writeXML(String fileName, String rootElement, Map<String, String> elementsMap){
- XMLOutputFactory xmlOutputFactory = XMLOutputFactory.newInstance();
- try {
- XMLEventWriter xmlEventWriter = xmlOutputFactory.createXMLEventWriter(new FileOutputStream(fileName), "UTF-8");
- XMLEventFactory eventFactory = XMLEventFactory.newInstance();
- XMLEvent end = eventFactory.createDTD("\n");
- xmlEventWriter.add(end);
- StartElement configStartElement = eventFactory.createStartElement("", "", rootElement);
- xmlEventWriter.add(configStartElement);
- xmlEventWriter.add(end);
- // Add Record
- newRecord(xmlEventWriter,elementsMap);
- xmlEventWriter.add(eventFactory.createEndElement("", "", rootElement));
- xmlEventWriter.add(end);
- xmlEventWriter.add(eventFactory.createEndDocument());
- xmlEventWriter.close();
- } catch (FileNotFoundException | XMLStreamException e) {
- e.printStackTrace();
- }
- }
- public void newRecord(XMLEventWriter eventWriter, Map<String, String> elementsMap) throws XMLStreamException {
- XMLEventFactory xmlEventFactory = XMLEventFactory.newInstance();
- XMLEvent end = xmlEventFactory.createDTD("\n");
- XMLEvent tab = xmlEventFactory.createDTD("\t");
- //Create Start node
- StartElement sElement = xmlEventFactory.createStartElement("", "", "Row");
- eventWriter.add(tab);
- eventWriter.add(sElement);
- eventWriter.add(end);
- //Create Content
- Set<String> elementsNodes = elementsMap.keySet();
- for(String key : elementsNodes)
- createNode(eventWriter, key, elementsMap.get(key));
- // Create End node
- EndElement eElement = xmlEventFactory.createEndElement("", "", "Row");
- eventWriter.add(tab);
- eventWriter.add(eElement);
- eventWriter.add(end);
- }
- private static void createNode(XMLEventWriter eventWriter, String element, String value) throws XMLStreamException {
- XMLEventFactory xmlEventFactory = XMLEventFactory.newInstance();
- XMLEvent end = xmlEventFactory.createDTD("\n");
- XMLEvent doubleTab = xmlEventFactory.createDTD("\t\t");
- //Create Start node
- StartElement sElement = xmlEventFactory.createStartElement("", "", element);
- eventWriter.add(doubleTab);
- eventWriter.add(sElement);
- //Create Content
- Characters characters = xmlEventFactory.createCharacters(value);
- eventWriter.add(characters);
- // Create End node
- EndElement eElement = xmlEventFactory.createEndElement("", "", element);
- eventWriter.add(eElement);
- eventWriter.add(end);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement