gpt4 book ai didi

c# - SAX 与 XmlTextReader - C# 中的 SAX

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:27 27 4
gpt4 key购买 nike

我正在尝试读取一个大型 XML 文档,并且我想以 block 的形式读取它,而不是 XmlDocument 将整个文件读入内存的方式。我知道我可以使用 XmlTextReader 来做到这一点,但我想知道是否有人使用过 SAX for .NET?我知道 Java 开发人员对它发誓,我想知道是否值得尝试一下,如果值得,使用它有什么好处。我正在寻找细节。

最佳答案

如果您只是想快速完成工作,XmlTextReader 就是为此目的而存在的(在 .NET 中)。

如果您想学习一个事实上的标准(并且在许多其他编程语言中可用),它是稳定的并且会迫使您非常高效和优雅地编码,但它也非常灵活,然后研究 SAX。 但是,除非您要创建非常深奥的 XML 解析器,否则不要浪费您的时间。相反,寻找适用于您的特定平台的下一代解析器(如 XmlTextReader)的解析器。

SAX 资源
SAX 最初是为 Java 编写的,您可以在这里找到已经稳定了几年的原始开源项目: http://sax.sourceforge.net/

此处有同一项目的 C# 端口(HTML 文档作为源下载的一部分);它也是稳定的: http://saxdotnet.sourceforge.net/

如果您不喜欢 C# 实现,您总是可以使用 MSXML3 或更高版本通过 COMInterop 引用 COM DLL:http://msdn.microsoft.com/en-us/library/ms994343.aspx

来自 Java 世界的文章可能说明了使用此方法成功所需的概念(可能还有可下载的 Java 源代码,这些代码可能会被证明有用并且可能很容易转换为 C#):

这将是一个繁琐的实现。我在 .NET 之前的日子里只使用过 SAX,但它需要一些非常高级的编码技术。 在这一点上,不值得麻烦。

混合解析器的有趣概念
该线程描述了一个混合解析器,它使用 .NET XmlTextReader 来实现一个结合了 DOM 和 SAX 优势的解析器...
http://bytes.com/groups/net-xml/178403-xmltextreader-versus-dom

关于c# - SAX 与 XmlTextReader - C# 中的 SAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/127869/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com