我有wsdl文件,网址分散在各处,我喜欢用其他地方替换部分网址
例如,这里是wsdl文件的一部分
<definitions xmlns:tns="http://local.host/web/test/11/soap/testserver.php" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" name="DatixInterface" targetNamespace="http://local.host/web/test/11/soap/testserver.php">
我想将所有“http://local.host/web/test/11”替换为“http://web.server/”,因此它看起来像这样
<definitions xmlns:tns="http://web.server/soap/testserver.php" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" name="DatixInterface" targetNamespace="http://web.server/soap/testserver.php">
我可以使用php中的preg_replace_all轻松完成此操作,但我似乎无法在java中执行此操作。
(我的主要语言不是java,所以提前抱歉)
非常感谢任何帮助,并提前致谢
答案 0 :(得分:1)
您可以使用简单的文本编辑器来完成此操作。
但是,您也可以使用 sed , awk 或 perl 。你可以在这里查看sed示例: http://www.brunolinux.com/02-The_Terminal/Find_and%20Replace_with_Sed.html
使用sed你可以这样做:
sed -i .bak 's#http://local.host/web/test/11#http://web.server/#' yourfile.wsdl
如果是 java ,您可以使用简单的string.replace轻松完成此操作:
public class Test{
public static void main(String[] args) {
String sentence = "<definitions xmlns:tns=\"http://local.host/web/test/11/soap/testserver.php\" xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\" xmlns=\"http://schemas.xmlsoap.org/wsdl/\" name=\"DatixInterface\" targetNamespace=\"http://local.host/web/test/11/soap/testserver.php\">";
String str = sentence.replaceAll("http://local.host/web/test/11", "http://web.server/");
System.out.println(str);
}
}
顺便说一句,如果您想加载文件的内容并替换这些字符串,您可以使用好朋友 Apache commons :
File file = new File("D:\\yourfile.wsdl");
String fileString = FileUtils.readFileToString(file);
String finalString = fileString.replaceAll("http://local.host/web/test/11", "http://web.server/");
FileUtils.writeStringToFile(file, finalString);