在 xml 中添加命名空间前缀的正则表达式
Regular expression to add namespace prefix in xml
我卡在一个 point.I 有一个 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>
但我想要 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>
我试过了
搜索正则表达式 ="(<\/?)[a-z0-9]+";
替换 =s1:"$1"
但不工作..
有什么帮助吗??
将 (</?)(\w+)>
替换为 s1:>
。现在这应该只适用于你的 IDE.
对于第一行,您必须使用另一个正则表达式。 (<soapenv:Envelope.*?)>
来自 s1="someUrl">
。
我同意其他评论,正则表达式解析不是从 XML 中提取信息的最佳方式。其实这不是解析,而是替换。这应该适用于小例子。
如果您需要适用于可变数量的 WSDL 的可靠解决方案,您应该切换到 XML parser/rewriter。我认为一些 XML-工具开箱即用地支持您的问题。
我卡在一个 point.I 有一个 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>
但我想要 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>
我试过了 搜索正则表达式 ="(<\/?)[a-z0-9]+"; 替换 =s1:"$1" 但不工作..
有什么帮助吗??
将 (</?)(\w+)>
替换为 s1:>
。现在这应该只适用于你的 IDE.
对于第一行,您必须使用另一个正则表达式。 (<soapenv:Envelope.*?)>
来自 s1="someUrl">
。
我同意其他评论,正则表达式解析不是从 XML 中提取信息的最佳方式。其实这不是解析,而是替换。这应该适用于小例子。
如果您需要适用于可变数量的 WSDL 的可靠解决方案,您应该切换到 XML parser/rewriter。我认为一些 XML-工具开箱即用地支持您的问题。