今天在做xml解析的時候,遇到一個問題
:怎么用相對路徑替換絕對路徑?花了我半天的時間(水平不行浪費太多時間
),寫出來共享給大家,希望能夠給大家幫助。在web工程中,有三種途徑可以實現xml相對路徑:
1>將xml放在WEB-INF目錄下,通過getServletContext().getResourceAsStream("/WEB-INF/gather.xml");
2>將xml方法在WEB-INF/classes目錄下或classpath的jar包中,則可以使用ClassLoader的靜態方法getSystemResourceAsStream(String)讀取
前兩種方法是從網上找到的,還沒有嘗試,因為我采用的是得到xml的url,然后去解析的.
3>通過獲得xml的url,然后根據url去解析的
獲得url代碼:
ClassLoader classLoader = Thread.currentThread.getContextClassLoader();
java.net.URL xmlURL = classLoader.getResource("gather/config/gather.xml");
SAXReader reader = new SAXReader();
Document document = reader.read(xmlURL);
如果不是在web工程中,可以用InputStream去解析xml,代碼如下:
//className是類名
ClassLoader classLoader = className.class.getClassLoader();
InputStream inputStream = classLoader.getResourceAsStream("gather/config/gather.xml");
SAXReader reader = new SAXReader();
Document document = reader.read(inputStream);