C# 如何使用XmlReader类?

C# 如何使用XmlReader类?,c#,xml,xmlreader,C#,Xml,Xmlreader,我想使用XmlReader保存和加载xml数据。但是我不知道如何使用这个类。你能给我一个开始的示例代码吗?你应该使用Create方法,而不是使用new,因为XmlReader是一个抽象类 从优秀开始,考虑看第11章。 MSDN有一个简单的例子让你开始。 如果您对阅读和编写XML文档感兴趣,而不仅仅是专门使用XmlReader类,那么有以下几种方法 但如果您只是想开始玩,请尝试以下方法: XmlReaderSettings settings = new XmlReaderSettings();

我想使用XmlReader保存和加载xml数据。但是我不知道如何使用这个类。你能给我一个开始的示例代码吗?

你应该使用
Create
方法,而不是使用
new
,因为
XmlReader
是一个
抽象类


从优秀开始,考虑看第11章。

MSDN有一个简单的例子让你开始。

如果您对阅读和编写XML文档感兴趣,而不仅仅是专门使用XmlReader类,那么有以下几种方法

但如果您只是想开始玩,请尝试以下方法:

 XmlReaderSettings settings = new XmlReaderSettings();
 settings.IgnoreWhitespace = true;
 settings.IgnoreComments = true;
 XmlReader reader = XmlReader.Create("file.xml", settings);

就我个人而言,我已经从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>();

是的,71000个结果,但这也是StackOverflow的目的!XmlReader是POCO Entites tt用来读取edmx文件的读取器。因此,为了继续使用他们的API并正确使用它,而不是自己解析emdx文件,我需要使用XmlReader。如果我需要像查询其他数据一样查询XML,我同意。但是,对于简单验证或仅向前搜索XmlReader是更好的选择,因为它更高效。当一个题为“如何使用XmlReader类”的问题有一个被接受的答案,而这个答案与这个问题的答案并不接近时,我们就遇到了一个严重的问题。我投票删除或重命名这个问题。如果您正在阅读大量XML文档,这不是一个好的解决方案。XMLReader允许您对其进行流式处理并逐段阅读。当我发现解决我的问题的代码片段时,我总是感到惊讶,而这些片段我在任何地方都找不到,包括MS站点。谢谢,这个救了我。
        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>();
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;
    }