【问题标题】:C# XML Serialization, Ignore Certain NodesC# XML 序列化,忽略某些节点
【发布时间】:2017-10-17 04:56:29
【问题描述】:

当前使用 System.Xml.Serialization 序列化程序。反序列化包含 HTML 标记的字符串将导致序列化程序删除标记。避免这种情况的最佳解决方案是什么?

这是 XML 的样子,

<String name="Computer3" lang="US_EN">
    HELLO <i>FRUITS</i>. I HAVE RELEASED A NEW VIDEO.
</String>

&lt;i&gt; 标签在反序列化时被删除,所以输出消息看起来像,

HELLO . I HAVE RELEASED A NEW VIDEO.

【问题讨论】:

  • 您可能应该将您的消息包装在CDATA 标记中,以便将其视为纯文本,尤其是当它包含有效的 XML 标记(您的 &lt;i&gt; 标记)时。或者,对您的值进行编码,以便转义尖括号(&amp;lt; 用于&lt;&amp;gt; 用于&gt;)。

标签: c# xml serialization


【解决方案1】:

您必须对字符串值进行编码以在 XML 中保留任何 HTML 标记。

var encodeString = HttpUtility.HtmlEncode("HELLO <i>FRUITS</i>. I HAVE RELEASED A NEW VIDEO.");

然后,您必须在检索值时对其进行解码。

var normalString = HttpUtility.HtmlDecode("HELLO &lt;i&gt;FRUITS&lt;/i&gt;. I HAVE RELEASED A NEW VIDEO.");

来源[1]:https://msdn.microsoft.com/en-us/library/73z22y6h(v=vs.110).aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    相关资源
    最近更新 更多