package com.andy.yang;
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.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.xml.sax.SAXException;
public class DomXml implements TestXml
{
private Document document = null;
private String fileName;
public void init()
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
this.document = builder.newDocument();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void createXml(String fileName) {
// TODO Auto-generated method stub
Element root = this.document.createElement("employees");
this.document.appendChild(root);
Element employee = this.document.createElement("employee");
Element name = this.document.createElement("name");
Element sex = this.document.createElement("sex");
name.appendChild(this.document.createTextNode("andyYang"));
sex.appendChild(this.document.createTextNode("male"));
employee.appendChild(name);
employee.appendChild(sex);
root.appendChild(employee);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = null;
try {
transformer = tf.newTransformer();
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DOMSource source = new DOMSource(document);
transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
PrintWriter pw = null;
try {
pw = new PrintWriter(new FileOutputStream(fileName));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
StreamResult result = new StreamResult(pw);
try {
transformer.transform(source, result);
System.out.print("Dom文档生成成功。");
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void parserXml(String fileName) {
// TODO Auto-generated method stub
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Document document = db.parse(fileName);
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
NodeList employees = document.getChildNodes();
for(int i=0; i<employees.getLength(); i++)
{
Node employee = employees.item(i);
NodeList employeeInfo = employee.getChildNodes();
for(int j=0; j<employeeInfo.getLength(); j++)
{
Node node = employeeInfo.item(j);
NodeList employeeMeta = node.getChildNodes();
for(int k=0; k<employeeMeta.getLength(); k++)
{
System.out.println(employeeMeta.item(k).getNodeName()+" : "+employeeMeta.item(k).getTextContent());
}
}
}
}
public static void main(String argus[])
{
DomXml domXml = new DomXml();
domXml.init();
domXml.createXml("E:\\"+"test.txt");
domXml.parserXml("E:\\"+"test.txt");
// 看几个变量的含义
System.out.println(File.pathSeparator);
System.out.println(File.pathSeparatorChar);
System.out.println(File.separator);
System.out.println(File.separatorChar);
}
}
java创建解析XML
最新推荐文章于 2025-08-15 23:11:27 发布
本文演示了如何使用Java创建和解析XML文档,包括初始化文档、创建元素、设置属性和值,以及输出到文件的过程。

1191

被折叠的 条评论
为什么被折叠?



