2014-09-03 56 views
0
<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://stackoverflow.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

回答

0

您的課程序列化不如它可能。考慮使用這樣的:

[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