我想使用 XmlReader 保存和加载我的 xml 数据。但我不知道如何使用这个类。你能给我一个示例代码吗?
问问题
32340 次
4 回答
12
MSDN 有一个简单的示例可以帮助您从这里开始。
如果您对阅读和编写 XML 文档感兴趣,而不仅仅是专门使用 XmlReader 类,这里有一篇很好的文章,涵盖了您的一些选项。
但如果你只是想开始玩,试试这个:
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create("file.xml", settings);
于 2009-05-24T16:57:30.777 回答
9
我个人已经从 XMLReader 切换到 System.XML.Linq.XDocument 来管理我的 XML 数据文件。通过这种方式,我可以轻松地将数据从 xml 提取到对象中,并像我程序中的任何其他对象一样管理它们。当我完成对它们的操作后,我可以随时将更改保存回 xml 文件。
//Load my xml document
XDocument myData = XDocument.Load(PhysicalApplicationPath + "/Data.xml");
//Create my new object
HelpItem newitem = new HelpItem();
newitem.Answer = answer;
newitem.Question = question;
newitem.Category = category;
//Find the Parent Node and then add the new item to it.
XElement helpItems = myData.Descendants("HelpItems").First();
helpItems.Add(newitem.XmlHelpItem());
//then save it back out to the file system
myData.Save(PhysicalApplicationPath + "/Data.xml");
如果我想在一个易于管理的数据集中使用这些数据,我可以将它绑定到我的对象列表。
List<HelpItem> helpitems = (from helpitem in myData.Descendants("HelpItem")
select new HelpItem
{
Category = helpitem.Element("Category").Value,
Question = helpitem.Element("Question").Value,
Answer = helpitem.Element("Answer").Value,
}).ToList<HelpItem>();
现在它可以通过我的对象类的任何固有功能进行传递和操作。
为方便起见,我的类具有将自身创建为 xml 节点的功能。
public XElement XmlHelpItem()
{
XElement helpitem = new XElement("HelpItem");
XElement category = new XElement("Category", Category);
XElement question = new XElement("Question", Question);
XElement answer = new XElement("Answer", Answer);
helpitem.Add(category);
helpitem.Add(question);
helpitem.Add(answer);
return helpitem;
}
于 2009-05-25T05:06:33.203 回答
7
您应该使用该Create
方法而不是 using new
,因为XmlReader
它是abstract class
使用工厂模式。
var xmlReader = XmlReader.Create("xmlfile.xml");
于 2009-05-24T16:38:06.400 回答
6
从优秀的C# 3.0 in a Nutshell中,考虑查看第 11 章中的示例代码。
于 2009-05-24T16:51:21.313 回答