2011-03-06 98 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; }