XPathReader 发生了啥

Posted

技术标签:

【中文标题】XPathReader 发生了啥【英文标题】:What ever happened to XPathReaderXPathReader 发生了什么 【发布时间】:2010-10-02 16:31:57 【问题描述】:

XPathReader 是/是正读 XML 解析器(基于 XMLReader 构建)的实现,它允许您注册 XPath 查询以供它查找(或至少称为 Sequential XPath 的 XPath 子集)。 这似乎是轻松访问 xml 流元素的完美选择,或者您只需要从大型 xml 文档的开头提取一些信息,因此不想将整个内容加载到内存中的情况。

对于其中一位 MS 人员在 2003/2004 年发布的开源实现,似乎有一阵兴奋,例如:

http://donxml.com/allthingstechie/archive/2004/02/26/430.aspx

http://msdn.microsoft.com/en-us/library/ms950778.aspx

http://www.tkachenko.com/blog/archives/000472.html

但在那之后,这条小路似乎干涸了。对托管实施的位置 (http://workspaces.gotdotnet.com/xpathreader) 的引用似乎不再有效。 有谁知道发生了什么事,为什么感兴趣的人消失了?

【问题讨论】:

我认为 LINQ-to-XML 构建了一个 DOM 树来评估 XPath。它适用于流吗? 【参考方案1】:

今天发现自己问了同样的问题,因为我打算构建一个 BizTalk 管道组件来解析特定元素的传入消息。

经过一番谷歌搜索,我发现 XPathReader 程序集随 BizTalk 一起提供,并且驻留在 GAC 中。

只需引用 GAC 程序集 Microsoft.BizTalk.XPathReader.dll 即可启动并运行!

【讨论】:

【参考方案2】:

我怀疑发生了 LINQ-to-XML。但是,Mvp.Xml project on CodePlex 有许多与此相关的功能。您可能想看看他们开发的XPointer.NET 库和XPointerReader

另外,你可能想看看这个FastXPathReader on CodeProject(我不知道它有多有效)。

至于 XPathReader,我只能找到您提供的链接以及与这些链接相关的链接。好像消失了一样。就像我说的,我认为 LINQ-to-XML 是结果,但我只是猜测。

【讨论】:

感谢您的回复。杰夫。根据我对 LINQ-to-XML 的了解,它并不能真正解决同样的问题,是吗?不幸的是,即使是这样,我们也不能使用 LINQ,因为我们仍然坚持使用 .Net 2。CodeProject 项目太不完整而没有用处。 [续...] [...cont] 我可能需要看看我是否可以根据 XPointer 重新调整我当前的需求并使用 Mvp 的东西。 我不确定 LINQ-to-XML 是否完全解决了这个问题——但如果 XPathReader 被推到一边,我不会感到惊讶。我仍在四处寻找类似的东西。我会告诉你的。 我使用自己的 XmlReader 包装器,与 XPathReader 非常相似,但支持 较小的 路径子集,即“元素路径”(元素名称由“/”分隔)。然后我将片段解析为文档并享受所有正常的随机访问好处,一次是文档的一个子集。结果是一个方便的编程模型、不错的速度、平坦的占用空间以及处理任意大文件的能力。【参考方案3】:

XNode.ReadFrom 将 Linq to XML 的强大功能(和支持的状态)与处理流而不是将整个文件加载到内存中的能力相结合

http://msdn.microsoft.com/en-us/library/system.xml.linq.xnode.readfrom.aspx

【讨论】:

【参考方案4】:

好像是ms通过here发布了这个,并且安装包含源代码。

【讨论】:

“发布日期:2004 年 5 月 6 日” - 未维护 我能够使用 .NET 4 框架在 VS2010 中编译和运行测试套件。它仍然有效,即使它没有得到维护。

以上是关于XPathReader 发生了啥的主要内容,如果未能解决你的问题,请参考以下文章

Maven Polyglot 发生了啥?

索引操作到底发生了啥?

Spring - @Transactional - 在后台发生了啥?

这个函数顶部发生了啥

这个 WinMain() 声明中发生了啥?

这里的 useRef 内部发生了啥?