domparser - 使用 DOM 将 JTable 数据写入带有适当元素标签的 XML
问题描述
我想使用 DOM 解析器将我的 JTable 数据写入 XML 文件。我正在尝试创建 JTable 列的元素标记,这与此处将列名视为 TextNode 不同。
这是我尝试过的:
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();
}
另外,我需要为此创建 getter 和 setter 吗?为什么使用它们?
解决方案
推荐阅读
- python - 在同一类下使用更改 xpath 刮取元素
- java - HBase shell 崩溃并给出 CMSIncrementalMode 错误
- angular - 如何在 ng-bootstrap Carousel 中获取索引图像
- unity3d - 奇怪的 Instatiate 健康栏
- python - 如何格式化从多对多关系访问的元素?
- visual-studio-2017 - Azure DevOps 中已删除的项目以其 ID 保留在 Visual Studio 中
- linux - 从win10到linux的SSH连接脚本
- android - 使用 Android Studio 创建新的 Flutter 项目时出现问题
- macos - Visual Studio 社区冻结在 macOS 上创建新的 Xamarin 项目
- python - 带有应用程序调度的 CLI