簡體   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