Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于在xml中添加命名空间前缀的正则表达式_Java_Regex_Preg Match - Fatal编程技术网

Java 用于在xml中添加命名空间前缀的正则表达式

Java 用于在xml中添加命名空间前缀的正则表达式,java,regex,preg-match,Java,Regex,Preg Match,有一点我很困惑,我有一个没有前缀的xml。 我试图通过正则表达式设置前缀。 我的xml如下所示:- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tier="http://xxxx"> <soapenv:Header/> <soapenv:Body> <tier:UnisysMB_Dispatch> <PayLo

有一点我很困惑,我有一个没有前缀的xml。 我试图通过正则表达式设置前缀。 我的xml如下所示:-

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tier="http://xxxx">
<soapenv:Header/>
<soapenv:Body>
  <tier:UnisysMB_Dispatch>
     <PayLoad>
    <XMLTransaction>
        <Source_Identifier>WFM.MSM.SR</Source_Identifier>
        </XMLTransaction></PayLoad>
  </tier:UnisysMB_Dispatch>
</soapenv:Body>
</soapenv:Envelope>

WFM.MSM.SR
但我希望xml具有名称空间前缀,每个标记(s1)如下所示:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"   xmlns:tier="http://xxxx" s1="someurl">
<soapenv:Header/>
<soapenv:Body>
  <tier:UnisysMB_Dispatch>
     <s1:PayLoad>
    <s1:XMLTransaction>
        <s1:Source_Identifier>WFM.MSM.SR</s1:Source_Identifier>
        <s1:/XMLTransaction></s1:PayLoad>
  </tier:UnisysMB_Dispatch>
</soapenv:Body>
</soapenv:Envelope>

WFM.MSM.SR
我试过这个 search regex=“(用
$1s1:$2>
替换
)。现在,这应该只能在IDE中正常工作

对于第一行,您必须使用另一个正则表达式。
by
$1 s1=“someUrl”>

我同意其他评论,正则表达式解析并不是从XML中提取信息的最佳方式。实际上,这不是解析,而是替换。这对于小示例应该是有效的


如果您需要一个适用于不同数量的WSDL的健壮解决方案,您应该切换到XML解析器/重写器。我认为一些XML工具支持您的现成问题。

java中的
preg\u match
从何而来?不要使用正则表达式解析XML文件。我包括正则表达式,因为正则表达式是所有人的共同话题,所以任何有人可以帮我。很抱歉,这至少会有一些与“层:”和“soapenv:“文本,可能还有源代码标识符。但是,这确实说明了xml上的正则表达式并不好……在声称它不起作用之前,您应该先试用一下。它可以与基本快照一起使用……但让我用不同的值进行更多测试……非常感谢……Stefan