1.Dom4j简介

  Dom4j是目前最流行、最好用的XML解析工具,解析XML的速度最快;

2.本博客分别以解析双标签和单标签为例进行演示

  2.1 双标签

    2.1.1 data.xml配置文件

数据驱动第二章节:使用Dom4j实现对xml的操作

2.1.2 操作xml的类

package com.common;
import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 * @Description:该类的功能描述
 * @ClassName:FromXml.java
 * @version:v1.0.0
 * @author:bingkele
 * @date:2020年5月31日下午2:22:15
 */
public class FromXml {
    /**
     * @Description:遍历xml的全部数据
     * @MethodName:getXmlContent
     * @version:v1.0.0
     * @author:bingkele
     * @date:2020年5月31日下午15:51:11
     */
    public static void getXmlContent()throws Exception{
        String filePath=System.getProperty("user.dir")+"/data.xml";  
        SAXReader reader = new SAXReader();                           
        Document document = reader.read(new File(filePath));
        Element node = document.getRootElement();
        List<Element> elements = node.elements();
        for(Element el:elements){
            System.out.println("属性名:"+el.attributeValue("name"));
            System.out.println("参数值:"+el.element("value").getText());
            System.out.println("描   述:"+el.element("comment").getText());            
        }    
    }
    /**
     * @Description:获取xml的指定属性值
     * @ClassName:getParaContent
     * @param:parameterName
     *        传入的指定参数名
     * @version:v1.0.0
     * @author:bingkele
     * @date:2020年5月31日下午15:51:11
     */
    public static String getParaContent(String parameterName) throws DocumentException{
        String parameterValue = null;
        String filePath=System.getProperty("user.dir")+"/data.xml";
        SAXReader reader = new SAXReader();
        Document document = reader.read(new File(filePath));
        Element node = document.getRootElement();
        List<Element> elements = node.elements();
        for(Element el:elements){
            if(el.attributeValue("name").equals(parameterName)){
                parameterValue = el.element("value").getText();
            }
        }
        return parameterValue;
    }

}
2.1.3使用testNG进行测试

package com.testngdemo;
import org.testng.annotations.Test;
import com.common.FromXml;
public class TestFromXml {
  @Test
  public void getFromXml() throws Exception {
      FromXml.getXmlContent();
  }
  @Test
  public void getCustomFromXml() throws Exception {
      System.out.println("参数值为:"+FromXml.getParaContent("username"));
  }
}

2.1.4 结果如下:

数据驱动第二章节:使用Dom4j实现对xml的操作

2.2 单标签

 2.2.1 singlelabe.xml配置文件

数据驱动第二章节:使用Dom4j实现对xml的操作

2.2.2 操作xml的具体类

package com.common;
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 * @Description:该类的功能描述
 * @ClassName:FromSingleXml.java
 * @version:v1.0.0
 * @author:bingkele
 * @date:2020年5月31日下午3:26:24
 */
public class FromSingleXml {
    /**
     * @Description:遍历xml的全部数据,单标签
     * @ClassName:getSingleXmlData
     * @version:v1.0.0
     * @author:bingkele
     * @date:2020年5月31日下午15:51:11
     */
    public static void getSingleXmlContent()throws Exception{
        String filePath=System.getProperty("user.dir")+"/singlelabe.xml";
        SAXReader reader = new SAXReader();
        Document document = reader.read(new File(filePath));
        Element node = document.getRootElement();
        List<Element> elements = node.elements();
        for(Element el:elements){
            System.out.println("属性名:"+el.attributeValue("name")+"-->"+el.attributeValue("value")+"-->"+el.attributeValue("comment"));            
        }
    }
    /**
     * @Description:获取xml的指定属性值,单标签
     * @ClassName:getSingleParaContent
     * @param parameterName
     *        传入的指定参数名
     * @version:v1.0.0
     * @author:bingkele
     * @date:2020年5月31日下午15:51:11
     */
    public static String getSingleParaContent(String parameterName) throws DocumentException{
        String parameterContent = null;
        String filePath=System.getProperty("user.dir")+"/singlelabe.xml";
        SAXReader reader = new SAXReader();
        Document document = reader.read(new File(filePath));
        Element node = document.getRootElement();
        List<Element> elements = node.elements();
        for(Element el:elements){
            if(el.attributeValue("name").equals(parameterName)){
                parameterContent = el.attributeValue("value");
            }
        }
        return parameterContent;
    }
}
2.2.3 使用testNG进行测试

 package com.testngdemo;

import org.testng.annotations.Test;

import com.common.FromSingleXml;

public class TestFromSingleXml {
  @Test
  public void getXmlData() throws Exception {
      FromSingleXml.getSingleXmlContent();
  }
  @Test
  public void getXmlCustomerData() throws Exception {
      System.out.println(FromSingleXml.getSingleParaContent("username"));
  }
}
2.2.4 结果如下图:

数据驱动第二章节:使用Dom4j实现对xml的操作

3.附依赖包如下:

数据驱动第二章节:使用Dom4j实现对xml的操作

4.dom4j常用方法(仅供参考)

数据驱动第二章节:使用Dom4j实现对xml的操作

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-05
  • 2021-11-08
  • 2021-07-03
猜你喜欢
  • 2021-06-16
  • 2021-05-03
  • 2022-01-23
  • 2021-08-16
  • 2022-12-23
  • 2021-11-03
相关资源
相似解决方案