我想使用 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
{
}