wr.java
来自「一个简单的人事管理系统。通过swing、jdbc实现。并利用xml实现输出」· Java 代码 · 共 124 行
JAVA
124 行
package XML_use;
import java.io.*;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.*;
public class WR {
File file = new File(
"D:/LW/workspace/RenShi/renshi.xml");
Document doc = null;
public Document create(DefaultTableModel model) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
doc = builder.newDocument();
Element root = doc.createElement("root");
doc.appendChild(root);
for (int i = 0; i < model.getRowCount(); i++) {
Element renshi = doc.createElement("renshi");
Element ID = doc.createElement("ID");
Element Name = doc.createElement("Name");
Element Sex = doc.createElement("Sex");
Element Department = doc.createElement("Department");
Element Salary = doc.createElement("Salary");
root.appendChild(renshi);
renshi.appendChild(ID);
renshi.appendChild(Name);
renshi.appendChild(Sex);
renshi.appendChild(Department);
renshi.appendChild(Salary);
String[] str = new String[5];
for (int j = 0; j < 5; j++) {
str[j] = (String) model.getValueAt(i, j);
}
Text t = doc.createTextNode(str[0]);
ID.appendChild(t);
t = doc.createTextNode(str[1]);
Name.appendChild(t);
t = doc.createTextNode(str[2]);
Sex.appendChild(t);
t = doc.createTextNode(str[3]);
Department.appendChild(t);
t = doc.createTextNode(str[4]);
Salary.appendChild(t);
// renshi.setAttribute("ID", str[0]);
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tf = null;
try {
tf = tff.newTransformer();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
}
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(file);
try {
tf.transform(source, result);
} catch (TransformerException e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
return doc;
}
public DefaultTableModel read(){
String[] s = { "编号(ID)", "名字(Name)", "性别(Sex)", "部门(Department)",
"工资(Salary)" };
DefaultTableModel model = new DefaultTableModel(null, s);
try{
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
doc =builder.parse(file);
NodeList list = doc.getElementsByTagName("renshi");
for(int i=0;i<list.getLength();i++){
Vector vec = new Vector();
Element renshi=(Element)list.item(i);
Node id=renshi.getElementsByTagName("ID").item(0);
Node name=renshi.getElementsByTagName("Name").item(0);
Node sex=renshi.getElementsByTagName("Sex").item(0);
Node department=renshi.getElementsByTagName("Department").item(0);
Node salary=renshi.getElementsByTagName("Salary").item(0);
String sid=id.getFirstChild().getNodeValue();
String sname=name.getFirstChild().getNodeValue();
String ssex=sex.getFirstChild().getNodeValue();
String sdepartment=department.getFirstChild().getNodeValue();
String ssalary=salary.getFirstChild().getNodeValue();
vec.add(sid);
vec.add(sname);
vec.add(ssex);
vec.add(sdepartment);
vec.add(ssalary);
model.addRow(vec);
}
}catch (Exception e) {
e.printStackTrace();
}return model;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?