如何在C#中使用事件驱动的SAX(Simple API FOR XML)解析器,还是使用System.XML命名空间更好?

在C ++中,我们可以将msxml DLL导入到我们的应用程序中,然后在我们的应用程序类中实现接口ISAXContentHandler的方法。 稍后创建一个ISAXReader对象并使用此类的实例调用contentHandler,其中我们已为eventhandler接口提供了实现。
同样,我想在C#中实现同样的目标。 有没有办法在C#中做到这一点? 我的意思是有没有办法在C#中进行基于事件的SAX解析。 我认为还有一种方法可以帮助我实现解析XML文档并将XML信息提供给我的应用程序。 我点击了链接“ http://www.codeguru.com/csharp/csharp/cs_data/xml/article.php/c4221

这里使用DOM并使用System.XML命名空间。 有谁可以帮助我这方面,—- 在C#中实现事件驱动的XML解析的方法是什么或者我应该使用System.XML命名空间(DOM)。 如果存在SAX事件驱动方式,请告诉我如何在C#中执行此操作

我认为.Net框架中最接近SAX-reader的是XmlReader类。 它不是基于事件的,但它允许您以类似的方式迭代文档。 看看这个例子: http : //msdn.microsoft.com/en-us/library/system.xml.xmlreader.read.aspx

如果您需要最高性能,那么XmlReader是一个不错的选择,但还有其他替代方案可以提供更友好的API。 XmlDocument类允许您将xml文档视为分层树,而XDocument允许您使用LINQ来解析xml。 您需要哪一种取决于您所熟悉的型号和您的要求。

前段时间我遇到了类似的问题。 虽然我无法回答哪个更好,已经实现的System.XML DOM或C#SAX解析器(这实际上取决于您的应用程序),但我可以告诉您,确实可以在C#中实现SAX解析器。

实际上,已经由Martin Friedrich在CodeProject上完成: 迈向声明性SAX框架:第1部分 – 简单的SAX到C# – 映射 。