Azure API策略查找和替换 - 从“<”到“

问题描述 投票:0回答:1

在Azure API Management中,我有一个API,在其出站策略中我希望像这样找到并替换;

<find-and-replace from="&lt;" to="<" />

但是,“<”字符当然是非法的,因为策略本身是用XML编写的,这给我带来了以下错误;

解析策略xml文档时出错。 '<',十六进制值0x3C,是无效的属性字符。第72行,第43位。

原因:

我的后端API返回一个文本字符串,我想将其“转换”为有效的XML。

问题:

  1. 将使用&gt;的字符串和&lt; (减去空格)而不是<和>仍然是XML有效?
  2. 如果#1的答案为否,那么,如何在Azure API策略中查找和替换?
xml azure-api-management
1个回答
0
投票

由于你想将“<”(即三个单独的字符)转换为“<”并且你正在编写一个XML,你必须对事物进行双重编码。尝试:

<find-and-replace from="&amp;lt;" to="&lt;" />

这种方式XML解码后的第一个字符串将成为“&lt;”,第二个 - “<”。

请注意,这不是APIM问题,它是XML编码问题,例如此代码:

new XElement("el", new XAttribute("at", "&lt;")).ToString()

产生这样的XML:

<el at="&amp;lt;" />
© www.soinside.com 2019 - 2024. All rights reserved.