• DOM4J对于XML的用法


    一、基本使用方式
        语法
        1、获取根元素
    Element root = document.getRootElement();
        2、获取某个元素下的子元素
    Element db_element = root.element("db");
        3、获取元素的子元素集合1
    List<Element> db_list = db_element.elements();//所有子元素
        4、获取元素属性的值
    element.attributeValue("name");
        5、获取元素的内容
    element.getText();
        6、获取元素的子元素集合2
    element.elements("user");//指定名称的子元素集合

    实战

    <users>
      <user no="2017">
        <name>狗蛋</name>
        <age>17</age>
      </user>
      <user no="2018">
        <name>李狗蛋</name>
        <age>19</age>
      </user>
    </users>

    1、导入dom4j的jar包,遍历

    public void test4j() throws DocumentException {
    //创建解析器
        SAXReader reader = new SAXReader();
        org.dom4j.Document document = reader.read(new File("src/userInfo.xml"));
        org.dom4j.Element root = document.getRootElement();
    
        List<org.dom4j.Element> list = root.elements();
    
        for(org.dom4j.Element e:list){
    //获取属性值
            String no = e.attributeValue("no");
            String name = e.element("name").getText();
            String age = e.element("age").getText();
    
            System.out.println(no+name+age);
        }
    }

    二、选择器使用

        语法
    1、获取节点集合:如下,获取所有节点的name属性的集合
    List<Node> list= document.selectNodes("users/user/name");
    2、获取节点的节点名称
    node.getName();
    3、获取节点的值
    node.getText();
    4、获取节点的属性值
    node.valuesOf("@no");

    实战

    2、还需导入jaxen-1.1-beta-6.jar,进行xpath操作
    public void testdom4j_xpath() throws DocumentException {
        SAXReader reader = new SAXReader();
        org.dom4j.Document document = reader.read(new File("src/userInfo.xml"));
        List<Node> list= document.selectNodes("users/user/name");
        for(Node node:list){
            String qname = node.getName();
            String name = node.getText();
            System.out.println(qname+"--"+name);
        }
        List<org.dom4j.Node> list1 = document.selectNodes("users/user");
        for(Node node:list1){
            String no = node.valueOf("@no");
            System.out.println(no);
        }
    }
    三、创建,修改XML文档
        语法
    1、获取document对象
    Document document = DocumentHelper.createDocument();
    2、创建根元素
     Element root = document.addElement("users");  
    3、添加子节点
    Element e = element.addElement("name");
    4、设置属性
    Element e = element.setText("张三");
    5、删除节点e的子节点element
    e.remove(element);

    四、属性

         语法
        1.取得某节点下的某属性          
    Attribute attribute=element.attribute("id");
        2.取得属性的文字
        String text=attribute.getText();
        3.删除某属性
    Attribute attribute=root.attribute("size"); root.remove(attribute);
        4.遍历某节点的所有属性     
    Element root=document.getRootElement();      
    for(Iterator it=root.attributeIterator();it.hasNext();){        
         Attribute attribute = (Attribute) it.next();         
         String text=attribute.getText();        
         System.out.println(text);  
    }
        5.设置某节点的属性和文字.  
    newMemberElm.addAttribute("name", "sitinspring");
        6.设置属性的文字   
    Attribute attribute=root.attribute("name");   
    attribute.setText("csdn");
     
  • 相关阅读:
    java web报错The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    在cmd下执行mvn help:system 报错
    win10安装mysql5.7
    centos7装单机hadoop2.7.3
    win10装jdk
    oracle中批量修改年份和月份,但不修改时分秒
    Python 正则匹配网页内的IP地址及端口号
    python 爬取网页内的代理服务器列表(需调整优化)
    python 爬取百度url
    Python 爬取SeeBug poc
  • 原文地址:https://www.cnblogs.com/alsf/p/9278703.html
Copyright © 2020-2023  润新知