JAXP 的DOM 解析

来源:互联网 发布:java 核型技术 卷1 编辑:程序博客网 时间:2024/05/10 22:23

// xmlDemo.xml xml 测试文件

<?xml version="1.0" encoding="utf-8" standalone="no"?><book>    <bookName>THINK IN JAVA</bookName>    <author>ldh</author>    <price>1000</price></book>

//xmlDemo.class

package demo1007;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;/** * JAXP 的dom 解析 */public class xmlDemo {    public static void main(String[] args) throws Exception {        DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();        DocumentBuilder db = factory.newDocumentBuilder();        Document document = db.parse("d:\\test\\xmlDemo.xml");        Node book = document.getElementsByTagName("book").item(0);        NodeList childNodes = book.getChildNodes();        //遍历book所有节点        for(int i=0;i<childNodes.getLength();i++) {            Node node = childNodes.item(i);            String nodeName = node.getNodeName();            System.out.println(nodeName+" "+node.getTextContent());        }//        // 在book节点下增加一个节点//        Element date = document.createElement("date");//        date.setTextContent("2016-10-08");//        book.appendChild(date);//        //删除date节点//        Node date = document.getElementsByTagName("date").item(0);//        Node node = date.getParentNode().removeChild(date);//        System.out.println("delete node : "+ node.getNodeName());        //回写        Transformer transformer = TransformerFactory.newInstance().newTransformer();        transformer.transform(new DOMSource(document), new StreamResult("d:\\test\\xmlDemo.xml"));    }}
0 0