前言
在写一个通用组件的时候需要读取xml文件,但是考虑到组件分发更加方便,所以进来少引用第三方的jar包,所以直接使用jdk内置的xml解析方法,当然功能和效率可能都没有第三发的组件强大。
导入的文件:
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
解析代码:
public Map loadUrlRange() {
Map map = new HashMap();
try {
java.net.URL url = getClass().getResource("/");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); // 获取一个DocumentBuilderFactory的实例
DocumentBuilder db = dbf.newDocumentBuilder(); // 使用工厂生成一个DocumentBuilder
File file = new File(url.getFile() + "/orgClientRes/urlRange.xml"); // 打开文件,获得句柄
Document doc = db.parse(file); // 使用dom解析xml文件
NodeList urlList = doc.getElementsByTagName("url"); // 将所有节点名为product的节点取出
Element productElement; // 元素对象,声明
for (int i = 0; i < urlList.getLength(); i++) // 循环处理对象
{
productElement = (Element) urlList.item(i);
String doUrl = productElement.getAttribute("doUrl");
// System.out.println("链接: " + doUrl);
if(!map.containsKey(doUrl)){
map.put(doUrl, "");
}
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}