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

标签 c# event-handling sax saxparser xml-parsing

在 C++ 中,我们可以将 msxml DLL 导入到我们的应用程序中,然后在我们应用程序的类中实现接口(interface) ISAXContentHandler 的方法。稍后创建一个 ISAXReader 对象并使用此类的实例调用 contentHandler,我们已经在其中为事件处理程序接口(interface)提供了实现。
同样,我想在 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 阅读器的是 XmlReader类(class)。它不是基于事件的,但它允许您以类似的方式遍历文档。看这个例子:http://msdn.microsoft.com/en-us/library/system.xml.xmlreader.read.aspx

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

关于c# - 如何在 C# 中使用事件驱动的 SAX(用于 XML 的简单 API)解析器,还是使用 System.XML 命名空间更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4164031/

相关文章:

c# - 如何在 Google Drive API 中取消上传?

c# - mscorlib.dll、System.Data.dll 和 EntityFramework.dll 在输出窗口中引发异常

c# - 使用反射的比较运算符

c# - 如何在WPF MVVM中将View对象发送到ViewModel?

javascript - Vuejs - 冒泡自定义事件

javascript - ASP.net/Javascript : Automatically postback triggering and next control to have focus

android - 获取整个 Google map 网页源代码,而不仅仅是要解析的生成的 KML 文件

qt - 如何在托管 C++ (C++/CLI) 中将 Qt 信号映射到事件

java - 如何在不使用 Apache POI 解析大型 excel 文件的情况下复制整个工作表?

java - 奇怪的 JAX-RS 行为