Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C将具有属性的XML元素反序列化到列表中_C#_Xml_Xml Parsing_Xml Deserialization - Fatal编程技术网

C# C将具有属性的XML元素反序列化到列表中

C# C将具有属性的XML元素反序列化到列表中,c#,xml,xml-parsing,xml-deserialization,C#,Xml,Xml Parsing,Xml Deserialization,以下是XML: <xml id = "1234"> <connect id="2"/> <connect id="1"/> <connect id="21"/> <connect id="3"/> <connect id="7"/> </xml> 目前我正在这样做: public class xml { //Constructor [XmlAttribu

以下是XML:

<xml id = "1234">
    <connect id="2"/>
    <connect id="1"/>
    <connect id="21"/>
    <connect id="3"/>
    <connect id="7"/>
</xml>
目前我正在这样做:

public class xml
{
    //Constructor

    [XmlAttribute ("id")]
    public uint id;

    [XmlElement ("connect")]
    public List<Connection> Connections { get; set; }

    //Deserializer
}

public class Connection
{
    [XmlAttribute ("id")]
    public uint id { get; set; }
}
目标是完全摆脱连接类,并直接将xml反序列化为:

List<uint> connections;
首先,您的XML是无效的,我想这只是一个输入错误——connect没有结束标记

我建议您使用linq。 那么很容易:

XDocument xdoc = XDocument.Parse(xml);
List<uint> list = xdoc
                    .Descendants("connect")
                    .Select(node => uint.Parse(node.Attribute("id").Value))
                    .ToList();

有没有办法使用System.Xml.Serialization来实现这一点?谢谢!这正是我一直在寻找的解决方案。我没有意识到XDocument的潜力。它是自动关闭的。为什么它不应该是有效的呢?@da_berni,这个问题在我发布之后被编辑并修正了