1.Dom解析xml文件:
domDemo.xml:
<?xml version="1.0" encoding="UTF-8"?>
<addresslist>
<linkman>
<name>李连杰</name>
<email>104139697@qq.com</email>
</linkman>
<linkman>
<name>成龙</name>
<email>51539697@qq.com</email>
</linkman>
</addresslist>
DomDemo.java:
import java.io.IOException;
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXException;
public class DomDemo{
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException{
//取得DucumentBuilderFactory类的对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("src/domDemo.xml");
NodeList n1 = doc.getElementsByTagName("linkman");
for(int i=0;i<n1.getLength();i++){
Element e = (Element) n1.item(i);
System.out.println("姓名:"+e.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
System.out.println("Email:"+e.getElementsByTagName("email").item(0).getFirstChild().getNodeValue());
}
}
}
注意:Document是从w3c(import org.w3c.dom.*;)的包中导入的,如果使用java包中的document会导致报错。
2.Dom生成xml文件:
import java.io.File;
import java.io.IOException;
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.stream.util.StreamReaderDelegate;
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.xml.sax.SAXException;
public class DomDemo{
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException, TransformerException{
//取得DucumentBuilderFactory类的对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//取得documentBuilder类的对象
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();
Element addresslist = doc.createElement("addresslist");
Element linkman = doc.createElement("linkman");
Element name = doc.createElement("name");
Element email = doc.createElement("email");
//设置节点 内容
name.appendChild(doc.createTextNode("小胖"));
email.appendChild(doc.createTextNode("51513451@qq.com"));
//设置各节点之间的关系
linkman.appendChild(name);
linkman.appendChild(email);
addresslist.appendChild(linkman);
doc.appendChild(addresslist);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); //处理中文
DOMSource source = new DOMSource(doc); //准备输出文档
StreamResult result = new StreamResult(new File("src/output.xml"));
t.transform(source,result);
}
}