Azure API 管理策略搜索和替换

Sha*_*ark 1 azure azure-api-management

我正在使用 Azure API 管理策略,并试图找出如何从 SOAP 直通服务的输出中删除命名空间前缀。

我能找到的唯一解决方案是使用这个

<find-and-replace from="what to replace" to="replacement" />
Run Code Online (Sandbox Code Playgroud)

查找和替换是否接受正则表达式而不是静态字符串?像这样的东西吗?

<find-and-replace from="/(?!xmlns)^.*:/" to="" />
Run Code Online (Sandbox Code Playgroud)

Vit*_*tin 5

不幸的是不是,查找和替换策略背后的想法是在不缓冲整个消息正文的情况下进行替换,支持正则表达式将需要缓冲。但您可以使用策略表达式来完成您的任务:

<set-body>@(Regex.Replace(context.Response.Body.As<string>(), "pattern", ""))</set-body>
Run Code Online (Sandbox Code Playgroud)