java结合XPATH解析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"); } }
点亮测试人生!QQ:408129370
百度阅读电子书地址:http://yuedu.baidu.com/ebook/f6dbb2a2f01dc281e53af0f3
讨论QQ群:536192476
个人公众号:
百度阅读电子书地址:http://yuedu.baidu.com/ebook/f6dbb2a2f01dc281e53af0f3
讨论QQ群:536192476
个人公众号:
![](http://files.cnblogs.com/files/zhangfei/%E6%B5%8B%E8%AF%95%E5%BC%80%E5%8F%91%E6%B1%9F%E6%B9%96.bmp)