测试源码
package com.david.test
import java.awt.peer.SystemTrayPeer
import java.io.File
import java.io.FileNotFoundException
import java.io.FileOutputStream
import java.io.IOException
import java.io.PrintWriter
import javax.xml.parsers.DocumentBuilder
import javax.xml.parsers.DocumentBuilderFactory
import javax.xml.parsers.ParserConfigurationException
import javax.xml.transform.OutputKeys
import javax.xml.transform.Transformer
import javax.xml.transform.TransformerConfigurationException
import javax.xml.transform.TransformerException
import javax.xml.transform.TransformerFactory
import javax.xml.transform.TransformerFactoryConfigurationError
import javax.xml.transform.dom.DOMSource
import javax.xml.transform.stream.StreamResult
import org.w3c.dom.DOMException
import org.w3c.dom.Document
import org.w3c.dom.Element
import org.w3c.dom.Node
import org.w3c.dom.NodeList
import org.xml.sax.SAXException
public class DomDecode {
private Document document
private String fileName
public DomDecode(){
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance()
DocumentBuilder builder = factory.newDocumentBuilder()
this.document = builder.newDocument()
} catch (ParserConfigurationException e) {
e.printStackTrace()
}
}
public void createXML(String fileName){
try {
Element root = this.document.createElement("employees")
Element employee = this.document.createElement("employee")
Element name = this.document.createElement("name")
name.appendChild(this.document.createTextNode("张三"))
employee.appendChild(name)
Element sex = this.document.createElement("sex")
sex.appendChild(this.document.createTextNode("man"))
employee.appendChild(sex)
Element age = this.document.createElement("age")
age.appendChild(this.document.createTextNode("30"))
employee.appendChild(age)
root.appendChild(employee)
this.document.appendChild(root)
TransformerFactory transformerFactory = TransformerFactory.newInstance()
Transformer transformer = transformerFactory.newTransformer()
DOMSource source = new DOMSource(this.document)
transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312")
transformer.setOutputProperty(OutputKeys.INDENT, "yes")
PrintWriter pw = new PrintWriter(new FileOutputStream(fileName))
StreamResult result = new StreamResult(pw)
transformer.transform(source, result)
System.out.println("生成xml文件成功!")
} catch (DOMException e) {
e.printStackTrace()
} catch (TransformerConfigurationException e) {
e.printStackTrace()
} catch (TransformerFactoryConfigurationError e) {
e.printStackTrace()
} catch (FileNotFoundException e) {
e.printStackTrace()
} catch (TransformerException e) {
e.printStackTrace()
}
}
public void parserXml(String fileName){
try {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance()
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder()
Document document = documentBuilder.parse(new File(fileName))
NodeList rootNode = document.getChildNodes()
Node employees = rootNode.item(0)
NodeList employee = employees.getChildNodes()
for (int i = 0
Node curEmployee = employee.item(i)
NodeList employeeMeta = curEmployee.getChildNodes()
for (int j = 0
if (!employeeMeta.item(j).getTextContent().trim()
.equals(""))
System.out.println(employeeMeta.item(j).getNodeName()
+ ":" + employeeMeta.item(j).getTextContent())
}
System.out.println("-----------------------")
}
System.out.println("解析完毕!")
} catch (ParserConfigurationException e) {
e.printStackTrace()
} catch (SAXException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
}
}
}