zoukankan      html  css  js  c++  java
  • java分享第十七天-01(封装操作xml类)

    做自动化测试的人,都应该对XPATH很熟悉了,但是在用JAVA解析XML时,我们通常是一层层的遍历进去,这样的代码的局限性很大,也不方便,于是我们结合一下XPATH,来解决这个问题。
    所需要的JAR包:
    dom4j.jar
    jaxen.jar
    xmlbeans.jar

    具体的代码如下:

    public class ParseXml {
        private String filePath;
        private Document document; 
        public ParseXml(String filePath) {     
            this.filePath = filePath;
            this.load(this.filePath);
        }  
        private void load(String filePath){
            File file = new File(filePath);
            if (file.exists()) {
                SAXReader saxReader = new SAXReader();
                try {
                    document = saxReader.read(file);
                } catch (DocumentException e) {    
                    System.out.println("文件加载异常:" + filePath);              
                }
            } else{
                System.out.println("文件不存在 : " + filePath);
            }          
        }  
        public Element getElementObject(String elementPath) {
            return (Element) document.selectSingleNode(elementPath);
        }  
        @SuppressWarnings("unchecked")
        public List<Element> getElementObjects(String elementPath) {
            return document.selectNodes(elementPath);
        }
        @SuppressWarnings("unchecked")
        public Map<String, String> getChildrenInfoByElement(Element element){
            Map<String, String> map = new HashMap<String, String>();
            List<Element> children = element.elements();
            for (Element e : children) {
                map.put(e.getName(), e.getText());
            }
            return map;
        }
        public boolean isExist(String elementPath){
            boolean flag = false;
            Element element = this.getElementObject(elementPath);
            if(element != null) flag = true;
            return flag;
        }
         public String getElementText(String elementPath) {
            Element element = this.getElementObject(elementPath);
            if(element != null){
                return element.getText().trim();
            }else{
                return null;
            }      
        }
        public static void main(String[] args) {
            ParseXml px = new ParseXml("config/TestBaidu.xml");
            List<Element> elements = px.getElementObjects("/*/testUI");
        }
    } 



  • 相关阅读:
    redis介绍;特性介绍
    日常2018/4/9---b/s和c/s架构分别是什么?区别?
    持续集成实践---基于ant+jmeter+jenkins接口CI
    面向过程 和 面向对象个人理解
    记一次vc++6.0中程序正常,转 vs2019 c++后报错的问题
    C# 调用C++ dll EntryPointNotFoundException错误
    uniapp踩坑记录(持续更新)
    uniapp引用组件rate评分无法点击引起对style scoped学习
    sql server之time字段详解
    sql server之timestamp字段详解(转)
  • 原文地址:https://www.cnblogs.com/tiancy/p/6065448.html
Copyright © 2011-2022 走看看