废话不多说,直接上代码:
package self.learn.pratice;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.*;
public class ssss {
public static void main(String[] args) throws ParseException {
// inXml 为要截取的字符串
String inXml = "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:ns6=\"http://www.chinatelecom.com/spr/\">"
+" <SOAP-ENV:Body>"
+" <ns6:User_Info_Response>"
+" <IsSuccess>0</IsSuccess>"
+" <ErrorDesc>success</ErrorDesc>"
+" </ns6:User_Info_Response>"
+" </SOAP-ENV:Body>"
+" </SOAP-ENV:Envelope>";
String context = null;
// 截取<ErrorDesc> </ErrorDesc> 标签中的内容
String xml = "ErrorDesc";
context = regexLabel(inXml,"ErrorDesc");
System.out.println(context);
}
// 截取内容的函数
public static String regexLabel(String xml,String label) {
String context = "";
//正则表达式
String regex = "<"+label+">(.*?)</"+label+">";
Pattern pattern = Pattern.compile(regex);
Matcher m = pattern.matcher(xml);
List<String> list = new ArrayList<String>();
while(m.find()){
int i = 1;
list.add(m.group(i));
i++;
}
if(list.size() > 0){
context = list.get(0);
}
return context;
}
}
运行结果截图: