反序列化xml元素字符串

时间:2012-12-06 20:37:49

标签: c# xml string deserialization

我有这个XML元素字符串:

<person name="jhon smith" birth="11/10/1988" username="ilearn" password="123"/>

现在我想将其反序列化为各自的对象:

public class CancelCardResponse
{
    public string name { get; set; }
    public string birth { get; set; }
    public string username { get; set; }
    public string password { get; set; }
}

我正在使用类似的代码:

XmlSerializer deserializer = new XmlSerializer(typeof(Person));
StringReader reader = new StringReader(myxmlelementstring);

var a = deserializer.Deserialize(reader); // fail!

错误说明如下:

  

System.InvalidOperationException {“ XML文档中存在错误   (1,2)。“}

是否可以像上面那样对XML元素字符串进行去科学化?
我可以添加到我的XML元素字符串中以使用C#反序列化器吗?

2 个答案:

答案 0 :(得分:0)

试试这样:

public class person
{
    [XmlAttribute]
    public string name { get; set; }

    [XmlAttribute]
    public string birth { get; set; }

    [XmlAttribute]
    public string username { get; set; }

    [XmlAttribute]
    public string password { get; set; }
}

我没有编译或测试它,因为我有用户XmlSerializer已经有一段时间了,但这应该会让你到那里或接近它。

答案 1 :(得分:0)

将您的CancelCardResponse课程重命名为Person并使用[XmlAttribute("Attr Name as in XML")]

注释其属性