如何使用LinQ通过属性从XMLMap列表?

r1wp621o  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(179)

我尝试从XML文件中用LinQMapList,如下所示:

<Resultado NumRegistros="4">
            <Registro>
                <Campo Nombre="num_empleado">1234567</Campo>
                <Campo Nombre="nom_completo">SOMETHING</Campo>
                <Campo Nombre="SERIE">5CG4520WZ6</Campo>
                <Campo Nombre="ETIQ_INVENTARIO">959320</Campo>
                <Campo Nombre="EQUIPO">LAPTOP</Campo>
                <Campo Nombre="MARCA">HP</Campo>
                <Campo Nombre="MODELO">ELITEBOOK 9480M</Campo>
            </Registro>
            <Registro>
                <Campo Nombre="num_empleado">1234567</Campo>
                <Campo Nombre="nom_completo">SOMETHING</Campo>
                <Campo Nombre="SERIE">DMPRN0WSG5WT</Campo>
                <Campo Nombre="ETIQ_INVENTARIO">977846</Campo>
                <Campo Nombre="EQUIPO">IPAD</Campo>
                <Campo Nombre="MARCA">APPLE</Campo>
                <Campo Nombre="MODELO">Air2 WiFiCellular</Campo>
            </Registro>
            <Registro>
                <Campo Nombre="num_empleado">1234567</Campo>
                <Campo Nombre="nom_completo">SOMETHING</Campo>
                <Campo Nombre="SERIE">5CG5233JJZ</Campo>
                <Campo Nombre="ETIQ_INVENTARIO">977880</Campo>
                <Campo Nombre="EQUIPO">LAPTOP</Campo>
                <Campo Nombre="MARCA">HP</Campo>
                <Campo Nombre="MODELO">ELITEBOOK 9480M</Campo>
            </Registro>
            <Registro>
                <Campo Nombre="num_empleado">6004639</Campo>
                <Campo Nombre="nom_completo">SOMETHING</Campo>
                <Campo Nombre="SERIE">PF1LFXSD</Campo>
                <Campo Nombre="ETIQ_INVENTARIO">422345</Campo>
                <Campo Nombre="EQUIPO">LAPTOP</Campo>
                <Campo Nombre="MARCA">LENOVO</Campo>
                <Campo Nombre="MODELO">THINKPAD X1 CARBON </Campo>
            </Registro>
        </Resultado>

我如何将其Map到属性?我找到了其他示例,但它们引用了元素。
我有一个这样的模型类:

public class Equipo
{
    public string num_empleado { get; set; }
    public string nom_completo { get; set; }
    public string SERIE { get; set; }
    public string ETIQ_INVENTARIO { get; set; }
    public string EQUIPO { get; set; }
    public string MARCA { get; set; }
    public string MODELO { get; set; }
}

我尝试使用此代码,但出现错误:

var xElements = xmlEquipos.Descendants("Registro");
        var xmlSerializer = new XmlSerializer(typeof(Equipo));
        var lstEquipos = xElements.Select(equipo => (Equipo)xmlSerializer.Deserialize(equipo.CreateReader())).ToList();
66bbxpm5

66bbxpm51#

请尝试以下操作:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

namespace ConsoleApplication40
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";

        static void Main(string[] args)
        {

            XmlReader reader = XmlReader.Create(FILENAME);
            XmlSerializer serialize = new XmlSerializer(typeof(Resultado));
            Resultado resultado = (Resultado)serialize.Deserialize(reader);

        }
    }
    public class Resultado
    {
        [XmlAttribute()]
        public int NumRegistros {get;set;}
        [XmlElement("Registro")]
        public List<Registro> registro { get; set; } 

    }
    public class Registro
    {
        [XmlElement("Campo")]
        public List<Campo> campo { get; set; }
    }
    public class Campo
    {
        [XmlAttribute()]
        public string Nombre { get; set; }
        [XmlText]
        public string value { get; set; }
    }

 
}

相关问题