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

  • 相关阅读:
    C++: string的大小写转换
    c++自由的转换string和number
    C# 中的数据库操作~存储过程篇Mysql SqlServer
    Google Protocol Buffer Basics: C++
    C#中的扩展方法(向已有类添加方法,但无需创建新的派生类型)
    多态以及虚析构函数的使用
    【Java基础】String 相关知识点总结
    【设计模式】抽象工厂模式
    【设计模式】工厂方法模式
    【设计模式】简单工厂
  • 原文地址:https://www.cnblogs.com/wzscom/p/10288802.html
Copyright © 2020-2023  润新知