¿Cómo creo una clase a partir de elementos XML?

Tengo un tipo anónimo utilizado en una consulta de Linq y quiero que sea una clase en lugar de un tipo anónimo.

Los campos son: Edad y un nodo XML que tiene un par de elementos. ¿Cómo declaro la clase para poder acceder a los elementos XML?

Aquí está la clase parcialmente declarada:

class Student {
    int Age;
    // ??? What to use here for the XML node? XElement? 
}

preguntado el 05 de febrero de 12 a las 01:02

Defina tipos como en una clase anónima. -

2 Respuestas

Quizás esto es lo que estás buscando ...

Para explicar, he creado un ejemplo ...

He creado una clase para estudiantes que se ve así

   public class Student
{
    public int Age { get; set; }
    public string XmlData { get; set; }

    public Student()
    {

    }


}

Creé la clase del curso. esta clase será iniciada por los valores del xml

   public class Course
{
    public string Name { get; set; }
    public int Grade { get; set; }

    public Course()
    {

    }
}

ahora mira el código ...

Student student = new Student();
        student.Age = 120;
        student.XmlData = "<root><courses><course id='0'><name>Name a</name><grade>88</grade></course><course id='1'><name>Name a</name><grade>88</grade></course><course id='2'><name>Name a</name><grade>88</grade></course><course id='3'><name>Name a</name><grade>88</grade></course></courses></root>";

        XDocument doc = XDocument.Parse(student.XmlData);

        List<Course> coursesData = (from c in doc.Element("root").Element("courses").Elements("course")
                                   select new Course()
                                              {
                                                  Name = c.Element("name").Value,
                                                  Grade = Convert.ToInt16(c.Element("grade").Value)
                                              }).ToList();
  • crear una nueva instancia de un alumno.
  • inserte el valor 120 para la edad
  • insertar valor xml en el parámetro student.Xmldata
  • crear una consulta linq e iniciar una lista de cursos

Espero que te ayude

Respondido 05 Feb 12, 07:02

Muchas gracias. Esta es la dirección que necesito. - user763554

Por lo que tengo entendido, tienes un XML similar a esto:

<student>
    <age></age>
    <innerNode>
        <node1></node1>
        <node2></node2>
    <innerNode>
</student>

y desea representar esto en la clase ac #. Sugeriría tener 2 clases. 1 para Student y luego otro para innerNode.

En tu clase de Estudiante tendrás las propiedades:

int Age { get; };
innerNodeClass Inner { get; }

Entonces podrás hacer Student.Inner.Node1.

Respondido 05 Feb 12, 06:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.