2011-03-06 139 views
0

我正在使用.NET XmlSerializer類反序列化某些XML文檔。在那篇文檔中,我有一個看起來像這樣的元素:獲取也具有屬性的XML元素的值

<MyElement attr1="xxx" attr2="yyy">VALUE</MyElement> 

這是更大的XML的一部分。我需要把這個字符串反序列化爲一個對象,所以我寫了:

public class MyElement 
{ 
    [XmlAttribute(AttributeName = "attr1")] 
    public string attr1 { get; set; } 

    [XmlAttribute(AttributeName = "attr2")] 
    public string attr2 { get; set; } 

    [??????????????] 
    public string value { get; set; } 
} 

而且我想不通把問號什麼,而不是爲了得到該元素的值轉換爲數值。

回答

2

XmlTextAttribute

默認情況下,序列化XmlSerializer的一個類的成員作爲XML元素。但是,如果將XmlTextAttribute應用於成員,則XmlSerializer會將其值轉換爲XML文本。這意味着該值被編碼到XML元素的內容中。

[XmlText] 
public string Value { get; set; } 
1

如果XmlTextAttribute不起作用,你可以使用XmlElementAttribute

[XmlElement(DataType = "string", ElementName = "value")] 
public string value { get; set; }