XML序列化和反序列化复杂XML的问题

时间:2014-08-11 11:02:16

标签: c# xml serialization deserialization xml-deserialization

我的XML
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ServerConfig loggingEnabled="1"> <Servers id="2" host="mytest"> <Server host="test1.example.com" port="9999" > <Name id="newname1"> <FirstName id="myfirstname">hello first name</FirstName> <SecondName id="myfirstname">hello first name</SecondName> </Name> </Server> <Server host="test2.example.com" port="8888" /> </Servers> <Servers id="1"> <Server host="test3.example.com" port="9899" > <Name id="newname2"> <FirstName id="myfirstname">hello first name</FirstName> </Name> </Server> <Server host="test4.example.com" port="8988" /> </Servers> </ServerConfig>

我想将此xml反序列化为我的类

public sealed class ServerConfig
{
public sealed class Server
{
    [XmlAttribute("host")]
    public string Host { get; set; } // gives me host name

    [XmlAttribute("port")]
    public int Port { get; set; } // gives my prot number
}

[XmlArray]
public List<Server> Servers { get; set; } // gives me all 4 server lsit

[XmlAttribute("loggingEnabled")]
public int LoggingEnabled { get; set; } // gives me attribute detail

public ServerConfig()
{
    Servers = null;
    LoggingEnabled = 0;
}

}

问题

我的问题是我不知道如何访问嵌套元素名称的属性和子嵌套元素FirstName/SecondName

非常感谢。

感谢。

1 个答案:

答案 0 :(得分:1)

最简单的方法是微软在VS 2012开始提供,这个链接得到了很好的解释。

<强> XML TO C# Class

您需要做的就是复制您的xml,然后按照链接中的说明将特殊粘贴到类中。

快乐编码。

谢谢,