zoukankan      html  css  js  c++  java
  • Java解析复杂xml文件,使用Xpath

    Java解析复杂xml文件,需要使用到xpath,首先使用了Jdom2。代码示例如下:

    public static Document GetFileFromLocal(String filename){

    try {
    FileInputStream stream=new FileInputStream(String.format("d:/x下载/%s.xml", filename));
    SAXBuilder saxBuilder = new SAXBuilder();
    Document doc = saxBuilder.build(stream);
    return doc;

    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (JDOMException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    return null;
    }


    但是该xml解析器,不支持xpath。所以修改为dom4j。在dependency.xml文件里面添加依赖,maven会自动下载该jar文件:

    <dependency>
    <groupId>org.dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>2.1.0</version>
    </dependency>

    解析xml代码示例如下:

    public class XmlHelper {
    
        public static Document parse(String url)  {
            SAXReader reader = new SAXReader();
            Document document = null;
            try {
                document = reader.read(url);
            } catch (DocumentException e) {
                e.printStackTrace();
            }
    
            return document;
        }
    
        public static Element getRootElement(String url){
            SAXReader reader = new SAXReader();
            Document document = null;
            try {
                document = reader.read(url);
            } catch (DocumentException e) {
                e.printStackTrace();
            }
    
            return document.getRootElement();
        }
    
        public static Element getXmlElement(Element rootNode, String xpath) {
            if(rootNode==null||xpath==""){
                return null;
            }
            return rootNode.element(xpath);
    
        }
    
        public static String getXmlNodeText(Element rootNode, String xpath) {
            if(rootNode==null||xpath==""){
                return null;
            }
            Element element= rootNode.element(xpath);
            if(element==null){
                return "";
            }
            return element.getText();
        }
    }
    

      

  • 相关阅读:
    hiho150周
    hdu1011
    hiho1055/hdu1561
    bat脚本启动exe并打开文件后退出 + 中文乱码
    hiho1080
    hiho1079
    java异常处理——基础篇
    找不到要编译的文件——path环境变量配置
    MVC——studying
    轻松搞定EasyUI
  • 原文地址:https://www.cnblogs.com/363546828/p/8759659.html
Copyright © 2011-2022 走看看