序列化获取节点信息
问题描述:
<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本本性能,我该怎么做呢?
答
您的课程序列化不如它可能。考虑使用这样的:
[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
应该可以工作。否则,检查结果为string
或int
看看这个:http://stackoverflow.com/questions/8790807/how-do-i-give-an-array-an-attribute-during-serialization-in-c – 2014-09-03 09:32:27
嗯,谢谢,这是相反的,从C#到XML,我不理解它... – 2014-09-03 09:37:08
好吧,序列化和反序列化使用相同的C#类... – 2014-09-03 09:57:02