java 读取xml
1.以http协议读取网络中的xml
//basePath=http://xxx.com/xxx/xxx/{0}.xml";
String strUrl = MessageFormat.format(basePath, cid);//将{0}替换成cid
URL url = new URL(strUrl);
HttpURLConnection urlCon =(HttpURLConnection) url.openConnection();
InputStreamReader inputStreamReader = new InputStreamReader(urlCon.getInputStream());
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
for(String line=bufferedReader.readLine();line!=null;line=bufferedReader.readLine()){
if(StringUtils.contains(line, "SelectedSID")){
Pattern pattern = Pattern.compile("SelectedSID\\=\"(.*?)\"");//正则表达式取 SelectedSID开头 2个引号中间的值
Matcher matcher = pattern.matcher(line);
if(matcher.find()){
selectedShareValue= matcher.group(1).trim();
break;
}
}
}
urlCon.disconnect();
2.读取本地文件
String strPath = MessageFormat.format(basePath, cid);
File file = new File(strPath);
if(!file.exists()) return null;
InputStreamReader inputStreamReader = new InputStreamReader(FileUtils.openInputStream(file));
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
for(String line=bufferedReader.readLine();line!=null;line=bufferedReader.readLine()){
if(StringUtils.contains(line, "SelectedSID")){
Pattern pattern = Pattern.compile("SelectedSID\\=\"(.*?)\"");
Matcher matcher = pattern.matcher(line);
if(matcher.find()){
selectedShareValue= matcher.group(1).trim();
break;
}
}
}
xml文件太大,以dom4j结合xpath做好像效率不是很好,直接读问文件,确定的是关键词就在第二行。