其他分享
首页 > 其他分享> > 包含CDATA属性的XML的序列化/反序列化问题

包含CDATA属性的XML的序列化/反序列化问题

作者:互联网

我需要反序列化/序列化下面的xml文件:

<items att1="val">
<item att1="image1.jpg">
         <![CDATA[<strong>Image 1</strong>]]>
</item>
<item att1="image2.jpg">
         <![CDATA[<strong>Image 2</strong>]]>
</item>     
</items>

我的C#类:

[Serializable]
[XmlRoot("items")]    
public class RootClass
{
  [XmlAttribute("att1")]
  public string Att1 {set; get;}

  [XmlElement("item")]  
  public Item[] ArrayOfItem {get; set;}
}

  [Serializable]
public class Item
{
    [XmlAttribute("att1")]
    public string Att1 { get; set; }

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

一切正常,但是在反序列化之后

<![CDATA[<strong>Image 1</strong>]]>

我有

&lt;strong&gt;Image 1&lt;/strong&gt;

我试图将XmlCDataSection用作Content属性的类型,但XmlText属性不允许使用此类型.不幸的是,我无法更改XML结构.

我该如何解决这个问题?

解决方法:

这应该有所帮助

    private string content;

    [XmlText]
    public string Content
    {
        get { return content; }
        set { content = XElement.Parse(value).Value; }
    }

标签:cdata,xml-serialization,xml,c,net
来源: https://codeday.me/bug/20191208/2092717.html