繁体   English   中英

来自Web API的XML响应中的CData

[英]CData in XML response from Web API

我有一个ASP.NET Web API控制器,它返回一个实体,其中包含一些可能包含HTML标记的属性。 默认情况下,XML格式化程序将所有<和>替换为&lt; 和&gt; 因为它们不是XML中的有效字符。 现在我想知道是否可以禁用此替换功能,而是将内容包装在CData标签中。

所以代替:

<entity ...>
  <element>
    Some text with &lt;strong&gt;html&lt;/strong&gt;
  </element>
</entity>

我要这个:

<entity ...>
  <element>
    <![CDATA[
      Some text with <strong>html</strong>
    ]]>
  </element>
</entity>

我正在寻找一种方法来实现这一点,通过配置XML格式化程序,而无需直接在控制器或实体中进行更改。 如果不从头开始编写我自己的MediaTypeFormatter类,这可能吗?

我用那个片段实现了它:

[XmlIgnore]
public string Content { get; set; }

[DataMember]
[XmlText]
public XmlNode[] CdataContent
{
  get => new XmlNode[] { new XmlDocument().CreateCDataSection(Content) };
  set => Content = value[0].Value;
}

CdataContent将是<![CDATA[ ... ]]>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM