2012-02-05 65 views
0

我有一個在Linq查詢中使用的匿名類型,並且想讓它成爲一個類而不是匿名類型。如何從XML元素創建類?

這些字段是:年齡和具有幾個元素的XML節點。如何聲明該類以便我可以訪問XML元素?

這裏的部分類聲明:

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

在定義類型,如匿名課程。 – 2012-02-05 06:27:32

回答

1

也許這是你在找..

爲了說明我已經創建了一個例子什麼..

我創建的學生類,像這樣

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查詢,並開始課程列表

我希望它幫你

+0

非常感謝。這是我需要的方向。 – user763554 2012-02-05 07:55:09

1

從我的理解是你有一些XML是這樣的:

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

,你想在C#類來表示這一點。我會建議有2個班。 1爲學生,然後另一個爲innerNode。

在你的學生類,你將有屬性:

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

然後你就能夠做到Student.Inner.Node1。