【问题标题】:SoaupUI - Groovy replace AllSoapUI - Groovy 替换所有
【发布时间】:2015-11-04 01:25:33
【问题描述】:

我有一个字符串,其中包含一些带有命名空间的 xml 标记,我正在尝试从结束标记中删除命名空间。我试过用下面的方法

staticData = staticData.replaceAll('/Group xmlns="http://socialservices.gov.au/ebo/QualityIndicators"','/Group>')

它没有在字符串中找到文本。谁能看到我哪里出错了

谢谢

【问题讨论】:

    标签: regex groovy replace soapui


    【解决方案1】:

    您的表达式只是从特定标记中删除特定命名空间(除了您要添加和额外的> 到组)。

    您可以尝试更通用地使用 replaceAll 和以下正则表达式来从任何封闭标记中删除命名空间。

       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
    

    此脚本返回:

    <root>
    <Group>
    </Group>
    <Group>
    </Group>
    <Group>
    </Group>
    <Different>
    </Different>
    <Normal>
    </Normal>
    </root>
    

    正则表达式解释/\&lt;\/(\w*)\s[\S-\&gt;]*\&gt;/

    它匹配以&lt;/ (\&lt;\/) 开头的文本,后跟捕获该组的 0 或 n 个字符 ((\w*)),然后是一个空格 (\s),然后是除空格和之外的任何字符&gt; 0 或 n 次 ([\S-\&gt;]*) 最后是 &gt; char (\&gt;)。

    希望对你有帮助,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-06
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      相关资源
      最近更新 更多