在Azure API管理中,我有一个API,在其出站策略中,我希望这样查找和替换;
<find-and-replace from="<" to="<" />
但是,“ <”字符当然是非法的,因为该策略本身是用XML编写的,因此出现以下错误;
解析策略xml文档时出错。 “ <”(十六进制值0x3C)是无效的属性字符。第72行,位置43。
原因:
我的后端API返回一个文本字符串,我想将其“转换”为有效的XML。
问题:
答案 0 :(得分:0)
由于您要将“ <”(即三个独立的字符)转换为“ <”,并且要编写XML,因此必须对内容进行双重编码。试试:
<find-and-replace from="&lt;" to="<" />
这样,经过XML解码的XML的第一个字符串将变成“ <
”,第二个-变成“ <
”。
请注意,这不是APIM问题,而是XML编码问题,例如以下代码:
new XElement("el", new XAttribute("at", "<")).ToString()
产生这样的XML:
<el at="&lt;" />