zoukankan      html  css  js  c++  java
  • DOM 添加 / 更新 / 删除 XML (CURD)

    获得Document

    /**
         * 获取文档
         * 1、获得实例工厂
         * 2、获得解析器
         * 3、获得document
         */

    添加结点

    /**
         * 1、获得根结点
         * 2、创建结点(设置属性)
         * 3、创建子节点()
         * 4、添加到根节点
         */

    更新结点

        /**
         * 更新XML
         * 1、获得所有结点
         * 2、获得每一本书
         * 3、获得ID
         * 4、更新
         *     *1、更新id
         *     *2、更新子节点
         */

    删除结点

    /**
         * 删除XML
         * 1、获得所有结点
         * 2、获得每一本书
         * 3、获得ID
         * 4、删除
         */

    保存XML

    /**
         * 保存xml
         * 1、获得持久化对象实例工厂
         * 2、获得持久化对象
         * 3、将内存数据保存到磁盘
         *     *源————将document对象封装到Source
         *     *结果————将文件路径封装到Result
         * 4、保存
         */

      1 public static void main(String[] args) throws Exception {
      2         //获取document       
      3         Document document=getDocument();
      4         //更新xml
      5         //UpdateXml(document);
      6          
      7         //添加XML
      8          
      9         //AddXML(document);
     10          
     11          
     12         //删除xml
     13         //DeleXML(document);
     14          
     15          
     16          
     17         /**
     18          * 保存
     19          */
     20         Save(document);
     21          
     22     }
     23  
     24     /**
     25      * 1、获得根结点
     26      * 2、创建结点(设置属性)
     27      * 3、创建子节点()
     28      * 4、添加到根节点
     29      */
     30     private static void AddXML(Document document) {
     31         Element rootElement=document.getDocumentElement();
     32          
     33         Element newElement=document.createElement("book");
     34          
     35         newElement.setAttribute("id", "b003");
     36          
     37         Element PriceElement=document.createElement("title");
     38         PriceElement.setTextContent("30");
     39         PriceElement.setAttribute("unit", "¥");
     40         newElement.appendChild(PriceElement);
     41          
     42         rootElement.appendChild(newElement);
     43     }
     44      
     45     /**
     46      * 删除XML
     47      * 1、获得所有结点
     48      * 2、获得每一本书
     49      * 3、获得ID
     50      * 4、删除
     51      */
     52  
     53     private static void DeleXML(Document document) {
     54         NodeList nodeList=document.getElementsByTagName("book");
     55         for (int i = 0; i < nodeList.getLength(); i++) {
     56             Node chilNode=nodeList.item(i);
     57             String id=((Element)chilNode).getAttribute("id");
     58             if("b001".equals(id))
     59             {
     60                 Node parentNode=chilNode.getParentNode();
     61                 parentNode.removeChild(chilNode);
     62             }
     63         }
     64     }
     65  
     66     /**
     67      * 更新XML
     68      * 1、获得所有结点
     69      * 2、获得每一本书
     70      * 3、获得ID
     71      * 4、更新
     72      *  *1、更新id
     73      *  *2、更新子节点
     74      */
     75     private static void UpdateXml(Document document) {
     76         NodeList nodeList=document.getElementsByTagName("book");
     77         for (int i = 0; i < nodeList.getLength(); i++) {
     78             Node node=nodeList.item(i);
     79             Element element=(Element) node;
     80             String id=element.getAttribute("id");
     81             if("b001".equals(id))
     82             {
     83                 //element.setAttribute("id", "booooo"); //更新id值
     84                 NodeList childNode=element.getElementsByTagName("title");
     85                     Element childElement=(Element) childNode.item(0);//childNode.getLength()=1
     86                         childElement.setTextContent("Java核心技术");               
     87             }
     88         }
     89     }
     90  
     91     /**
     92      * 保存xml
     93      * 1、获得持久化对象实例工厂
     94      * 2、获得持久化对象
     95      * 3、将内存数据保存到磁盘
     96      *   *源————将document对象封装到Source
     97      *   *结果————将文件路径封装到Result
     98      * 4、保存
     99      */
    100     private static void Save(Document document)
    101             throws Exception {
    102         TransformerFactory factory=TransformerFactory.newInstance();
    103         Transformer transformer=factory.newTransformer();
    104         Source xmlSource=new DOMSource(document);
    105         javax.xml.transform.Result outputTarget=new StreamResult("books.jaxp.xml");
    106          
    107         transformer.transform(xmlSource, outputTarget);
    108          
    109         System.out.println("done");
    110     }
    111      
    112     /**
    113      * 获取文档
    114      * 1、获得实例工厂
    115      * 2、获得解析器
    116      * 3、获得document
    117      */
    118  
    119     private static Document getDocument() throws ParserConfigurationException,
    120             SAXException, IOException {
    121         DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
    122         DocumentBuilder builder=factory.newDocumentBuilder();
    123         Document document=builder.parse("books.xml");
    124         return document;
    125     }
  • 相关阅读:
    Python中使用pip安装库时提示:远程主机强迫关闭了一个现有的连接
    一个真正有能力的人
    一个程序员的自白(延迟满足)
    小规模团队如何“微服务”管理
    一个程序员的自白(无知之者)
    小型系统如何“微服务”开发
    TCP协议学习总结(下)
    TCP协议学习总结(中)
    TCP协议学习总结(上)
    一个程序员的自白(三十而立)
  • 原文地址:https://www.cnblogs.com/liuwt365/p/4079249.html
Copyright © 2011-2022 走看看