问题描述
我想使用 DOM 解析器将 JTable 数据写入 XML 文件。
我正在尝试创建 JTable 列的元素标记,这与 here 不同,其中列名被视为 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();
}
另外,我需要为此创建 getter 和 setter 吗?为什么使用它们?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)