序列化获取节点信息

问题描述:

<SHEET> 
<books title ='title'> 
<book label='1' page='1' intro='1'/> 
<book label='2' page='2' intro='2'/> 
<book label='3' page='3' intro='3'/> 
</books> 

<books title ='title'> 
<book label='1' page='1' intro='1'/> 
<book label='2' page='2' intro='2'/> 
<book label='3' page='3' intro='3'/> 
</books> 


</SHEET> 

所以我有这段代码,我使用它来获取书中项目的属性。 我用这个代码:序列化获取节点信息

[XmlRoot("SHEET")] 
public class BookRoot 
{ 
    private readonly List<Book> books = new List<Book>(); 
    [XmlArray("books"), XmlArrayItem("book")] 
    public List<Book> Books { get { return books; } } 
} 
public class Book { 
    [XmlAttribute("label")] 
} 

我还需要retireve本本性能,我该怎么做呢?

+0

看看这个:http://*.com/questions/8790807/how-do-i-give-an-array-an-attribute-during-serialization-in-c – 2014-09-03 09:32:27

+0

嗯,谢谢,这是相反的,从C#到XML,我不理解它... – 2014-09-03 09:37:08

+0

好吧,序列化和反序列化使用相同的C#类... – 2014-09-03 09:57:02

您的课程序列化不如它可能。考虑使用这样的:

[XmlRoot("SHEET")] 
public class Sheet 
{ 
    [XmlElementAttribute("books")] 
    public sheetBooks[] books; 

    public Sheet() 
    {} 
} 

public class sheetBooks 
{ 
    [XmlAttribute("title")] 
    public string title; 

    [XmlElementAttribute("book")] 
    public sheetBook book; 

    public sheetBooks() 
    {} 
} 

public class sheetBook 
{ 
    [XmlAttribute("label")] 
    public char label; 

    [XmlAttribute("page")] 
    public char page; 

    [XmlAttribute("intro")] 
    public char intro; 

    public sheetBook() 
    {} 
} 

标签,页面,介绍 - 它们都低于10?在这种情况下,char应该可以工作。否则,检查结果为stringint