c# - XML序列化和生成HTML文档时的 "<"、 ">"

标签 c# html serialization xmlserializer xml-encoding

我正在尝试使用 XmlSerializer 动态生成 HTML 表格和一组这样的类:

[XmlInclude(typeof(Th))]
public class Td
{
    [XmlElement("span")]
    public string Designation { get; set; }

    [XmlAttribute("colspan")]
    public int ColSpan { get; set; }

    [XmlAttribute("rowspan")]
    public int RowSpan { get; set; }

    public Td(string designation, int colspan)
    {
        Designation = designation;
        ColSpan = colspan;
        RowSpan = 1;
    }

    public Td()
    {            
    }

}

这里的问题是 Designation属性可以有一个标签作为值,如 <option...> ,所以当我序列化我的模型时,我得到 &lt;option...&gt;而不是 <option...>

我可以使用 string.Replace 解决问题像这样的方法:Replace("&lt;", "<").Replace("&gt;", ">");

有没有一种不使用 string.Replace 就能获得预期结果的干净方法? ?

最佳答案

您可以创建另一个将 Designation 公开为 XmlNode 的属性:

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

[XmlElement("span")]
public XmlNode DesignationAsXml
{
    get
    {
        XmlDocument doc = new XmlDocument();
        doc.InnerXml = "<root>" + this.Designation + "</root>";
        return doc.DocumentElement.FirstChild;
    }
    set
    {
        throw new NotSupportedException();
    }
}

关于c# - XML序列化和生成HTML文档时的 "<"、 ">",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10916321/

相关文章:

c# - Elasticsearch Nest-搜索动态数据

C#,Lokad.Shared : How to write custom rules to use with Enforce

javascript - 如何在 JavaScript 中制作带有两个链接/选择的弹出窗口 - 但不仅仅是确定或取消?

css - Twitter Bootstrap 行 div 不起作用

java - 高效的java对象图序列化

c# - 为什么必须用属性 [serializable] 标记一个类?

c# - 将图像源绑定(bind)到 BitmapSource 时,图像保持空白

c# - ASP.NET C# :cannot convert from 'string' to '<anonymous type error>'

html - 如何避免两次 float 相同的内容?

c# - C# 中的字典数据序列化