SoapUI - Groovy 全部替换
SoaupUI - Groovy replace All
我有一个字符串,其中包含一些带有名称空间的 xml 标签,我正在尝试从结束标签中删除名称空间。我试过使用下面的方法
staticData = staticData.replaceAll('/Group xmlns="http://socialservices.gov.au/ebo/QualityIndicators"','/Group>')
它没有在字符串中找到文本。谁能看出我哪里错了
谢谢
你的表达只是为了从特定标签中删除特定名称space(除了你正在添加和额外的>
到组)。
您可以使用 replaceAll
和以下正则表达式来尝试更通用,以从任何封闭标签中删除名称spaces。
def staticData =
'''<root>
<Group>
</Group xmlns="http://a">
<Group>
</Group xmlns="http://b">
<Group>
</Group xmlns="http://socialservices.gov.au/ebo/QualityIndicators">
<Different>
</Different xmlns="http://socialservices.gov.au/ebo/QualityIndicators">
<Normal>
</Normal>
</root>'''
staticData = staticData.replaceAll(/\<\/(\w*)\s[\S-\>]*\>/){ match, capture ->
return "</$capture>"
}
println staticData
这个脚本returns:
<root>
<Group>
</Group>
<Group>
</Group>
<Group>
</Group>
<Different>
</Different>
<Normal>
</Normal>
</root>
正则表达式解释 /\<\/(\w*)\s[\S-\>]*\>/
:
它匹配以 </
(\<\/
) 开头的文本,后跟捕获该组的 0 或 n 个字符 ((\w*)
),然后是一个 space (\s
) 然后是除 space 和 >
之外的任何字符 0 次或 n 次 ([\S-\>]*
),最后是 >
字符 (\>
)。
希望对您有所帮助,
我有一个字符串,其中包含一些带有名称空间的 xml 标签,我正在尝试从结束标签中删除名称空间。我试过使用下面的方法
staticData = staticData.replaceAll('/Group xmlns="http://socialservices.gov.au/ebo/QualityIndicators"','/Group>')
它没有在字符串中找到文本。谁能看出我哪里错了
谢谢
你的表达只是为了从特定标签中删除特定名称space(除了你正在添加和额外的>
到组)。
您可以使用 replaceAll
和以下正则表达式来尝试更通用,以从任何封闭标签中删除名称spaces。
def staticData =
'''<root>
<Group>
</Group xmlns="http://a">
<Group>
</Group xmlns="http://b">
<Group>
</Group xmlns="http://socialservices.gov.au/ebo/QualityIndicators">
<Different>
</Different xmlns="http://socialservices.gov.au/ebo/QualityIndicators">
<Normal>
</Normal>
</root>'''
staticData = staticData.replaceAll(/\<\/(\w*)\s[\S-\>]*\>/){ match, capture ->
return "</$capture>"
}
println staticData
这个脚本returns:
<root>
<Group>
</Group>
<Group>
</Group>
<Group>
</Group>
<Different>
</Different>
<Normal>
</Normal>
</root>
正则表达式解释 /\<\/(\w*)\s[\S-\>]*\>/
:
它匹配以 </
(\<\/
) 开头的文本,后跟捕获该组的 0 或 n 个字符 ((\w*)
),然后是一个 space (\s
) 然后是除 space 和 >
之外的任何字符 0 次或 n 次 ([\S-\>]*
),最后是 >
字符 (\>
)。
希望对您有所帮助,