如何从 XML 元素创建类?

发布于 2025-01-02 08:53:28 字数 234 浏览 0 评论 0原文

我在 Linq 查询中使用了一个匿名类型,并且希望将其设为一个类而不是匿名类型。

这些字段是:年龄和一个包含几个元素的 XML 节点。如何声明该类以便可以访问 XML 元素?

这是部分声明的类:

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

I have an anonymous type used in a Linq query and want to make this a class instead of anonymous type.

The fields are: Age and an XML node that has a couple of elements. How do I declare the class so that I can access the XML elements?

Here's the partially declared class:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一百个冬季 2025-01-09 08:53:29

据我了解,您有一些类似这样的 XML:

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

并且您想在 ac# 类中表示它。我建议上2节课。 1 个用于学生,另一个用于内部节点。

在您的 Student 类中,您将具有以下属性:

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

然后您将能够执行 Student.Inner.Node1。

From what I understand is you have some XML something like this:

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

and you want to represent this in a c# class. I would suggest having 2 classes. 1 for the Student and then another for the innerNode.

In your Student class you will have the properties:

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

Then you will be able to do Student.Inner.Node1.

地狱即天堂 2025-01-09 08:53:28

也许这就是您想要的..

为了解释,我创建了一个示例..

我创建了看起来像这样的学生课程,

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

    public Student()
    {

    }


}

我创建了课程课程。这个类将由 xml 中的值启动,

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

    public Course()
    {

    }
}

现在看看代码...

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();
  • 创建一个学生的新实例。
  • 插入年龄值 120
  • 将 xml 值插入到 Student.Xmldata 参数
  • 创建 linq 查询并启动课程列表

我希望它对您有帮助

Maybe this is what you looking for..

To explain i have created an example..

I have created student class that look like this

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

    public Student()
    {

    }


}

I created Course class. this class will be initiate by the values from the xml

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

    public Course()
    {

    }
}

now look the code...

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();
  • create new instance of a student.
  • insert the value 120 for age
  • insert xml value to student.Xmldata parameter
  • create linq query and initiate list of courses

I hope it help you

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文