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();
        }
    }
    

      

  • 相关阅读:
    005.SQLServer AlwaysOn可用性组高可用简介
    004.Windows Server 故障转移群集 (WSFC)简介
    003.SQLServer数据库镜像高可用部署
    附008.Kubernetes TLS证书介绍及创建
    附007.Kubernetes ABAC授权
    附006.Kubernetes RBAC授权
    附005.Kubernetes身份认证
    附004.Kubernetes Dashboard简介及使用
    附003.Kubeadm部署Kubernetes
    附002.Minikube介绍及使用
  • 原文地址:https://www.cnblogs.com/363546828/p/8759659.html
Copyright © 2011-2022 走看看