Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.84 KB | None | 0 0
  1. package eg.edu.alexu.csd.oop.XML;
  2.  
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. import java.util.Set;
  9.  
  10. import javax.xml.stream.XMLEventFactory;
  11. import javax.xml.stream.XMLEventWriter;
  12. import javax.xml.stream.XMLOutputFactory;
  13. import javax.xml.stream.XMLStreamException;
  14. import javax.xml.stream.events.Characters;
  15. import javax.xml.stream.events.EndElement;
  16. import javax.xml.stream.events.StartDocument;
  17. import javax.xml.stream.events.StartElement;
  18. import javax.xml.stream.events.XMLEvent;
  19.  
  20. public class StaxXMLWriter {
  21.  
  22. public static void main(String[] args) {
  23. String fileName = "C:\\Users\\hp\\Desktop\\College\\OOPAssignments\\DBMS\\OOP_TAs-oop-course-projects-b15818ce512d\\XML\\T.xml";
  24. String rootElement = "Table";
  25. StaxXMLWriter xmlWriter = new StaxXMLWriter();
  26. Map<String,String> elementsMap = new HashMap<String, String>();
  27. ArrayList s = new ArrayList();
  28. for (int i=0;i<8;i++)
  29. s.add(i);
  30. StringBuilder sb = new StringBuilder();
  31. for (int i = 0 ; i < s.size(); i++) {
  32. int num = (int) s.get(i);
  33. sb.append(num);
  34. if (i!=s.size()-1)
  35. sb.append(",");
  36. }
  37. String result = sb.toString();
  38. elementsMap.put("Row1", result);
  39.  
  40. s.clear();
  41.  
  42. for (int i=8;i<16;i++)
  43. s.add(i);
  44. StringBuilder SB = new StringBuilder();
  45. for (int i = 0 ; i < s.size(); i++) {
  46. int num = (int) s.get(i);
  47. SB.append(num);
  48. if (i!=s.size()-1)
  49. SB.append(",");
  50. }
  51. result = SB.toString();
  52. elementsMap.put("Row2", result);
  53. xmlWriter.writeXML(fileName, rootElement, elementsMap);
  54. }
  55.  
  56. public void writeXML(String fileName, String rootElement, Map<String, String> elementsMap){
  57. XMLOutputFactory xmlOutputFactory = XMLOutputFactory.newInstance();
  58. try {
  59. XMLEventWriter xmlEventWriter = xmlOutputFactory.createXMLEventWriter(new FileOutputStream(fileName), "UTF-8");
  60. XMLEventFactory eventFactory = XMLEventFactory.newInstance();
  61. XMLEvent end = eventFactory.createDTD("\n");
  62. xmlEventWriter.add(end);
  63. StartElement configStartElement = eventFactory.createStartElement("", "", rootElement);
  64. xmlEventWriter.add(configStartElement);
  65. xmlEventWriter.add(end);
  66. // Write the element nodes
  67. Set<String> elementNodes = elementsMap.keySet();
  68. for(String key : elementNodes)
  69. createNode(xmlEventWriter, key, elementsMap.get(key));
  70. xmlEventWriter.add(eventFactory.createEndElement("", "", rootElement));
  71. xmlEventWriter.add(end);
  72. xmlEventWriter.add(eventFactory.createEndDocument());
  73. xmlEventWriter.close();
  74. } catch (FileNotFoundException | XMLStreamException e) {
  75. e.printStackTrace();
  76. }
  77. }
  78.  
  79. private static void createNode(XMLEventWriter eventWriter, String element, String value) throws XMLStreamException {
  80. XMLEventFactory xmlEventFactory = XMLEventFactory.newInstance();
  81. XMLEvent end = xmlEventFactory.createDTD("\n");
  82. XMLEvent tab = xmlEventFactory.createDTD("\t");
  83. //Create Start node
  84. StartElement sElement = xmlEventFactory.createStartElement("", "", element);
  85. eventWriter.add(tab);
  86. eventWriter.add(sElement);
  87. //Create Content
  88. Characters characters = xmlEventFactory.createCharacters(value);
  89. eventWriter.add(characters);
  90. // Create End node
  91. EndElement eElement = xmlEventFactory.createEndElement("", "", element);
  92. eventWriter.add(eElement);
  93. eventWriter.add(end);
  94.  
  95. }
  96.  
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement