Dom解析XML文件(2017/8/23)

来源:互联网 发布:ubuntu 查看目录权限 编辑:程序博客网 时间:2024/06/16 00:17

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);

}
}

原创粉丝点击