Запишите данные JTable в XML с правильными тегами элементов, используя DOM

Я хочу записать свои данные JTable в файл XML с помощью синтаксического анализатора DOM. Я пытаюсь создать теги элементов столбцов JTable, в отличие от здесь, где имена столбцов обрабатываются как TextNodes.
Вот что я пробовал:

  String[] columnNames = {"Name", "Technology"};
  Object[][] rowData = {{"Raja", "Java"},{"Vineet", "Java Script"},{"Archana", "Python"},{"Krishna", "Scala"},{"Adithya", "AWS"},{"Jai", ".Net"}};
  model = new DefaultTableModel(rowData, columnNames);
  
  try {
      DocumentBuilderFactory dbFactory =
      DocumentBuilderFactory.newInstance();
      DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
      Document doc = dBuilder.newDocument();
      
      //root Element
      Element rootElement = doc.createElement("Cars");
      doc.appendChild(rootElement);
      
      for(int i=0; i<model.getRowCount();i++) { 
          for(int j=0; j<model.getColumnCount();j++) { 
              
              Element ele = doc.createElement(model.getColumnName(j));
              ele.appendChild(doc.createTextNode((String) model.getValueAt(i, j)));
              
          }
          Element data = doc.createElement("td");
          rootElement.appendChild(data);
          Attr attrr = doc.createAttribute("row: ");
          String stri = Integer.toString(i);
          attrr.setValue(stri);
          data.setAttributeNode(attrr);
      }
      
      // write the content into xml file
      TransformerFactory transformerFactory = TransformerFactory.newInstance();
      Transformer transformer = transformerFactory.newTransformer();
      DOMSource source = new DOMSource(doc);
      StreamResult result = new StreamResult(new File("D:\\cars.xml"));
      transformer.transform(source, result);
      
      // Output to console for testing
      StreamResult consoleResult = new StreamResult(System.out);
      transformer.transform(source, consoleResult);
   } catch (Exception e) {
      e.printStackTrace();
   }

Кроме того, нужно ли для этого создавать геттеры и сеттеры? Почему они используются?


person mmmmmmmmm    schedule 22.03.2021    source источник