在这里给大家一个DOM解析XML的一个简单示例,主要功能就是打开一个xml文件,在里面添加根元素的一个孩子节点,并且保存!!
package u;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
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.xml.sax.SAXException;
public class y {
private static DocumentBuilderFactory dbf;
private static DocumentBuilder db;
private static Document d;
private static File f;
public static Document parseXmlFile()
{
Element dd;
dbf=DocumentBuilderFactory.newInstance();
try
{
db=dbf.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
f=new File("f:/t.xml");/打开一个写xml文件
try
{
d=db.parse(f);//将xml文件转换成Document
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dd= d.getDocumentElement();//获得xml的根节点
Element ee=d.createElement("fff");///创建一个元素
dd.appendChild(ee);给根节点添加孩子节点
return d;
}
public static void WritePath(Node d,String path)
{
//保存生成的xml文件
TransformerFactory tff=TransformerFactory.newInstance();
Transformer tf;
DOMSource ds=new DOMSource(d);
StreamResult sr=new StreamResult(new File(path));
try
{
tf=tff.newTransformer();
tf.transform(ds, sr);
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
Document sd=parseXmlFile();
WritePath(sd,"f:/t.xml");
}
}