Advertisement
foozar

DOMParser

Oct 30th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.65 KB | None | 0 0
  1. package it.cefi.view;
  2. import java.awt.BorderLayout;
  3. import java.awt.GridLayout;
  4. import java.io.File;
  5. import javax.swing.BoxLayout;
  6. import javax.swing.JButton;
  7. import javax.swing.JFrame;
  8. import javax.swing.JLabel;
  9. import javax.swing.JPanel;
  10. import javax.swing.JTextField;
  11. import javax.xml.parsers.*;
  12. import javax.xml.transform.TransformerException;
  13. import org.w3c.dom.Attr;
  14. import org.w3c.dom.Document;
  15. import org.w3c.dom.Element;
  16. import javax.xml.transform.Transformer;
  17. import javax.xml.transform.TransformerFactory;
  18. import javax.xml.transform.dom.DOMSource;
  19. import javax.xml.transform.stream.StreamResult;
  20.  
  21. @SuppressWarnings("serial")
  22. public class DOMParser extends JFrame {
  23.  
  24.     public static final String xmlFilePath = "C:\\Users\\utente\\Desktop\\peoples.xml";
  25.    
  26.     public DOMParser() {
  27.  
  28.         JFrame mainFrame = new JFrame("DOMParser");
  29.         mainFrame.setLayout(new BoxLayout(mainFrame.getContentPane(), BoxLayout.PAGE_AXIS));
  30.         JPanel upperPanel = new JPanel();
  31.         upperPanel.setLayout(new GridLayout(0, 2,5,5));
  32.  
  33.         JPanel lowerPanel = new JPanel();
  34.         lowerPanel.setLayout(new BoxLayout(lowerPanel, BoxLayout.LINE_AXIS));
  35.  
  36.         JLabel personIdLabel = new JLabel("PersonID");
  37.         JLabel firstNameLabel = new JLabel("FirstName");
  38.         JLabel lastNameLabel = new JLabel("LastName");
  39.         JTextField personIdText = new JTextField();
  40.         JTextField firstNameText = new JTextField();
  41.         JTextField lastNameText = new JTextField();
  42.         JButton xmlButton = new JButton("Create XML");
  43.  
  44.         upperPanel.add(personIdLabel);
  45.         upperPanel.add(personIdText);
  46.         upperPanel.add(firstNameLabel);
  47.         upperPanel.add(firstNameText);
  48.         upperPanel.add(lastNameLabel);
  49.         upperPanel.add(lastNameText);
  50.         lowerPanel.add(xmlButton, BorderLayout.WEST);
  51.        
  52.         mainFrame.add(upperPanel);
  53.         mainFrame.add(lowerPanel);
  54.         mainFrame.setSize(400, 225);
  55.         mainFrame.setLocationRelativeTo(null);
  56.         mainFrame.setVisible(true);
  57.         xmlButton.addActionListener(e -> {
  58.  
  59.             try {
  60.                
  61.                 DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
  62.                 DocumentBuilder documentBuilder = documentFactory.newDocumentBuilder();
  63.                 Document document = documentBuilder.newDocument();
  64.  
  65.                 Element root = document.createElement("people");
  66.                 document.appendChild(root);
  67.                
  68.                 Element personId = document.createElement("person");
  69.                 root.appendChild(personId);
  70.                
  71.                 Attr attr = document.createAttribute("id");
  72.                 attr.setValue(personIdText.getText().toString());
  73.                 personId.setAttributeNode(attr);
  74.            
  75.                 Element firstName = document.createElement("firstname");
  76.                 firstName.appendChild(document.createTextNode(firstNameText.getText().toString()));
  77.                 personId.appendChild(firstName);
  78.                
  79.                 Element lastname = document.createElement("lastname");
  80.                 lastname.appendChild(document.createTextNode(lastNameText.getText().toString()));
  81.                 personId.appendChild(lastname);
  82.                
  83.                 //Transformer e Factory sono due design partner
  84.                 TransformerFactory transformerFactory = TransformerFactory.newInstance();
  85.                 Transformer transformer = transformerFactory.newTransformer();
  86.                
  87.                 DOMSource domSource = new DOMSource(document);
  88.                 StreamResult streamResult = new StreamResult(new File(xmlFilePath));       
  89.                 transformer.transform(domSource, streamResult);
  90.                
  91.                 firstNameText.setText(null);
  92.                 personIdText.setText(null);
  93.                 lastNameText.setText(null);
  94.                
  95.             } catch (ParserConfigurationException |  TransformerException pce) {
  96.                 pce.printStackTrace();
  97.             }
  98.  
  99.         });
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement