2016-10-19 140 views
0

我有一個xml文件,我嘗試爲它寫一個類型。 在某個時候,我的大腦凍結了。使用屬性反序列化XML CData

這個XML儘可能少,因爲我可以寫它。

<Level ID="SomeID"> 
    <Selection Name="AnotherID"> 
     <Content><![CDATA[SomeData]]></Content> 
    </Selection> 
</Level> 

在cs中我想寫一個類作爲xmlserializer的類型。

public class Level 
{ 
    [XmlAttribute] 
    public string ID {get; set;} 
    public ??? Selection {get; set;} 
    //What is the type of CDATA 
    //Where would the Name Attribute go? 
} 

不知何故選擇必須是一個具有屬性的類,而且選擇的類型是CData。無論CData是什麼,它將是一個標準類型,所以我不能設置Name屬性。

如何在cs類中解決這個問題? - xml是遺留的,現在不能更改。

回答

1

你有一個良好的開端..這應該有助於你得到其餘的方式。

public class Level 
{ 
    [XmlAttribute] 
    public string ID {get; set;} 
    public Selection Selection {get; set;} 
} 

public class Selection { 
    [XmlAttribute] 
    public string Name {get;set;} 
    public Content Content {get;set;} 
} 

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

所以通過對象模型訪問CDATA文本,你會訪問Level.Selection.Content.Data

+0

啊'選擇選擇'很高興知道這是可能的。 – Johannes