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做好像效率不是很好,直接读问文件,确定的是关键词就在第二行。

posted @ 2017-09-26 10:43  developer_os  阅读(388)  评论(0编辑  收藏  举报