超级简单操作xml 纯javaAPI 不借助第三方.
不善于表达,直接贴代码。
不善于表达,直接贴代码。
package io;
import java.io.File;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import util.DbUtils;
public class XML {
public static final String SAVE_PATH = "d://student.xml";
/**
* 添加节点
* @param doc 文档
* @param parent 父节点
* @param tagName 节点名称
* @param data 节点内容
* @return
*/
private static Element addElement(Document doc, Node parent,
String tagName, String data) {
Element element = doc.createElement(tagName);
if (null != data) {
Text text = doc.createTextNode(data);
element.appendChild(text);
}
if (null != parent) {
parent.appendChild(element);
}
return element;
}
/**
* 文档解析器
* @return
* @throws Exception
*/
private static DocumentBuilder getBuilder()throws Exception{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
return factory.newDocumentBuilder();
}
/**
* 写XML
* @param savePath
* @throws Exception
*/
public static void writer(String savePath) throws Exception {
// 创建document
Document doc = getBuilder().newDocument();
Element root = addElement(doc, doc, "students", null);
// 写入document
String sql = "select * from student";
Connection conn = DbUtils.getConn();
Statement state = conn.createStatement();
ResultSet rs = state.executeQuery(sql);
while (rs.next()) {
Element student = addElement(doc, root, "student", null);
addElement(doc, student, "id", rs.getString("id"));
addElement(doc, student, "name", rs.getString("name"));
addElement(doc, student, "age", rs.getString("age"));
addElement(doc, student, "code", rs.getString("code"));
addElement(doc, student, "sex", rs.getString("sex"));
addElement(doc, student, "political", rs.getString("political"));
addElement(doc, student, "origin", rs.getString("origin"));
addElement(doc, student, "professional", rs
.getString("professional"));
}
DbUtils.close(rs, state, conn);
// 输出document
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
//设定格式
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
//转换器
StreamResult result = new StreamResult(new FileOutputStream(savePath));
DOMSource source = new DOMSource(doc);
transformer.transform(source, result);
}
/**
* 读XML
* @param readPath
* @throws Exception
*/
public static void read(String readPath)throws Exception{
Document doc=getBuilder().parse(new File(readPath));
Element root=doc.getDocumentElement();
NodeList list=root.getChildNodes();
for (int i=0;i<list.getLength();i++ ) {
Node node=list.item(i);
if(node.getNodeType()==Node.ELEMENT_NODE){
NodeList childlist=node.getChildNodes();
for (int j = 0; j < childlist.getLength(); j++) {
Node childNode=childlist.item(j);
System.out.println(childNode.getNodeName()+":"+childNode.getTextContent());
}
}
}
}
public static void main(String[] args) throws Exception {
//XML.writer(SAVE_PATH);
XML.read(SAVE_PATH);
}
}