3

在 C++ 中,我们可以将 msxml DLL 导入我们的应用程序,然后在应用程序的一个类中实现接口 ISAXContentHandler 的方法。稍后创建一个 ISAXReader 对象并使用我们已经为事件处理程序接口提供实现的此类的实例调用 contentHandler。
同样,我想在 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# 中执行此操作

4

2 回答 2

2

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

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

于 2010-11-12T11:20:33.460 回答
0

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

事实上,Martin Friedrich 在 CodeProject: Towards a Declarative SAX Framework: Part 1 - A Simple SAX-to-C#-Mapping中已经完成了这项工作。

于 2010-11-12T14:02:15.360 回答