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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM