zoukankan      html  css  js  c++  java
  • xml文档对象模型doc

    对与DOM来说 ,一切都是节点Node;

    Document可以看成一个节点,Element可以看成一个节点,Text可以看成一个节点,

       封装出来的对象都可以看成节点Node;

    ③在JDK中,NodeDoucument(文档),Element(标签元素),Text(文本对象), Attr(属性对象)的父接口;

    原生API解析XML

    Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("C:\Users\Administrator\eclipse-workspace\day35\ghhj\contacts.xml");
            Element contact= doc.getDocumentElement();//根元素

    NodeList names = contact.getElementsByTagName("name");
            Element name = (Element) names.item(1);
            System.out.println(name.getTextContent());

    或     NodeList linkmans = doc.getElementsByTagName("linkman");
                 linkmans.item(1).getElementsByTagName("name");


            Element linkman = (Element) linkmans.item(1);

    把第一个联系人的邮箱改掉

    public void modify()throws Exception {

    Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("C:\Users\Administrator\eclipse-workspace\day35\ghhj\contacts.xml");
            Element contact= doc.getDocumentElement();//根元素

    Element contact = doc.getDocumentElement();
           
            Element linkman = (Element) (contact.getElementsByTagName("linkman").item(0));
        
            Element email= (Element)(linkman.getElementsByTagName("email").item(0));
          
            email.setTextContent("110110@qq.com");
            
       /////使用TransFormer类 把 内存中的数据 同步到xml里面去;
            Transformer trant = TransformerFactory.newInstance().newTransformer();
        
            Source source = new DOMSource(doc);
            Result result= new StreamResult(new File("G:\EclipseWorkSpace\testXml\src\com\cj\JAXP\contacts.xml"));
           
            trant.transform(source,result);
        }

    //添加一个联系人信息
        @Test
        public void add()throws Exception {
            //拿到document对象
            Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File("G:\EclipseWorkSpace\testXml\src\com\cj\JAXP\contacts.xml"));
            //获取根节点元素
            Element contact = doc.getDocumentElement();
            //创建所有节点对象
            Element linkman = doc.createElement("linkman");
            Element name = doc.createElement("name");
            name.setTextContent("李四");
            Element email = doc.createElement("email");
            email.setTextContent("110@qq.com");
            Element address = doc.createElement("address");
            address.setTextContent("安徽省");
            Element group = doc.createElement("group");
            group.setTextContent("111111");
            //将子标签添加到linkman标签内
            linkman.appendChild(name);
            linkman.appendChild(email);
            linkman.appendChild(address);
            linkman.appendChild(group);
            //将liakman添加到contact标签内
            contact.appendChild(linkman);
            
            //执行doc对象与xml文件同步
            //1.获取Transformer对象
            Transformer trant = TransformerFactory.newInstance().newTransformer();
            //2.创建Source对象(绑定doc对象)和Result对象(绑定文件对象)
            Source xmlSource = new DOMSource(doc);
            Result outputTarget = new StreamResult(new File("G:\EclipseWorkSpace\testXml\src\com\cj\JAXP\contacts.xml"));
            //3.将doc对象同步到xml文件中
            trant.transform(xmlSource, outputTarget);
        }

    // 删除第三个联系人;
        @Test
        public void delete()throws Exception {
            //拿到document对象
            Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File("G:\EclipseWorkSpace\testXml\src\com\cj\JAXP\contacts.xml"));
            //获取根节点元素
            Element contact = doc.getDocumentElement();
            //获取所有linkman元素
            NodeList linkmans = contact.getElementsByTagName("linkman");
            //将contact的第三个子节点(linkman)删除
            contact.removeChild(linkmans.item(2));

            
            //执行doc对象与xml文件同步
            //1.获取Transformer对象
            Transformer trant = TransformerFactory.newInstance().newTransformer();
            //2.创建Source对象(绑定doc对象)和Result对象(绑定文件对象)
            Source xmlSource = new DOMSource(doc);
            Result outputTarget = new StreamResult(new File("G:\EclipseWorkSpace\testXml\src\com\cj\JAXP\contacts.xml"));
            //3.将doc对象同步到xml文件中
            trant.transform(xmlSource, outputTarget);
        }
    }

  • 相关阅读:
    diary and html 文本颜色编辑,行距和其它编辑总汇
    bash coding to changeNames
    virtualbox ubuntu 网络连接 以及 连接 secureCRT
    linux 学习6 软件包安装
    linux 学习8 权限管理
    vim 使用2 转载 为了打开方便
    ubuntu
    linux 学习15 16 启动管理,备份和恢复
    linux 学习 14 日志管理
    linux 学习 13 系统管理
  • 原文地址:https://www.cnblogs.com/wzscom/p/10288802.html
Copyright © 2011-2022 走看看