0

我想使用 XML 序列化来反序列化这个 HTML 结构。

当我反序列化这个结构时,H3对象有一个Test Before的内容和一个包含的子节点<span class="red">Small</span>,但是Test After的值丢失了

以下结构在 XHTML 中有效,但在 XML 中可能无效。

我知道其他人在这里问了一个类似的问题,C# 如何反序列化嵌入在文本中的 xml 标记,但他们没有收到对他们问题的有效答案。

    <div class="row-fluid">
      <h3>Test Before <span class="red">Small</span> Test After</h3>
      <h4>Header and Footer</h4>
    </div>

我知道一个可行的选项如下,但我希望有人有更好的技术来使用 XML 序列化程序

    <div class="row-fluid">
      <h3><![CDATA[[Test Before <span class="red">Small</span> Test After]]></h3>
      <h4>Header and Footer</h4>
    </div>

这是我的 XML 序列化对象的一些示例

所有对象派生自

public abstract class BaseSlideDeckNodeDo
{
    protected BaseSlideDeckNodeDo()
    {
        CssClass = "";

        Nodes = new List<BaseSlideDeckNodeDo>();
    }

    [XmlAttribute("id")]
    public string Id { get; set; }

    [XmlAttribute("class")]
    public string CssClass { get; set; }

    [XmlAttribute("style")]
    public string Style { get; set; }

    [XmlText]
    public string Text { get; set; }


    [XmlElement("a", typeof(SlideDeckNodeADo))]
    [XmlElement("div", typeof(SlideDeckNodeDivDo))]
    [XmlElement("p", typeof(SlideDeckNodePDo))]
    [XmlElement("h1", typeof(SlideDeckNodeH1Do))]
    [XmlElement("h2", typeof(SlideDeckNodeH2Do))]
    [XmlElement("h3", typeof(SlideDeckNodeH3Do))]
    [XmlElement("h4", typeof(SlideDeckNodeH4Do))]
    [XmlElement("h5", typeof(SlideDeckNodeH5Do))]
    [XmlElement("h6", typeof(SlideDeckNodeH6Do))]
    [XmlElement("img", typeof(SlideDeckNodeImageDo))]
    [XmlElement("iframe", typeof(SlideDeckNodeIframeDo))]
    [XmlElement("video", typeof(SlideDeckNodeVideoDo))]
    [XmlElement("html", typeof(SlideDeckNodeHtmlDo))]
    [XmlElement("section", typeof(SlideDeckNodeSectionDo))]
    [XmlElement("span", typeof(SlideDeckNodeSpanDo))]
    public List<BaseSlideDeckNodeDo> Nodes { get; set; }
}

H3类示例

public class SlideDeckNodeH3Do : BaseSlideDeckAnimatedNodeDo
{
}

Span 类的示例

public class SlideDeckNodeSpanDo : BaseSlideDeckAnimatedNodeDo
{
}
4

0 回答 0