XPathReader发生了什么?

21
XPathReader是一个基于XMLReader构建的前向读取XML解析器的实现,它允许您注册XPath查询以查找它(或至少是Sequential 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树来评估XPaths。它能处理流吗? - TMN
4个回答

6

4
我猜测这是LINQ-to-XML的结果。然而,CodePlex上的Mvp.Xml项目具有许多与此相关的功能。您可能需要查看他们开发的XPointer.NET库和XPointerReader

此外,您可能还想查看CodeProject上的FastXPathReader(我不知道它有多有效)。

至于XPathReader,我能找到的只有您提供的链接和与之相关的链接。看起来它已经消失了。就像我说的那样,我认为这是LINQ-to-XML的结果,但这只是我的猜测。


感谢您的回复,Jeff。就我所知,LINQ-to-XML并没有解决同样的问题,是吗? 不幸的是,即使它能够解决问题,由于我们仍然使用.Net 2,我们无法使用LINQ。 CodeProject项目过于不完整,无法发挥作用。 [续...] - philsquared
我可能需要考虑是否可以用XPointer来重新表达我的当前需求,并使用Mvp的东西。 - philsquared
我不确定LINQ-to-XML是否完全解决了这个问题,但如果XPathReader因此被淘汰,我也不会感到惊讶。我仍在寻找类似的东西。我会告诉你的。 - Jeff Yates
我使用自己的XmlReader包装器,类似于XPathReader,但仅支持较小的路径子集,即只支持“元素路径”(由“/”分隔的元素名称)。 然后,我将片段解析为文档,并享受所有正常的随机访问好处,一次处理文档的一个子集。 其结果是方便的编程模型,良好的速度,平坦的占用空间以及能够处理任意大的文件。 - The Dag

4

看起来微软在这里发布了这个版本,并且安装包中包含源代码。


发布日期:2004年5月6日 - 未进行维护 - philsquared
2
我能够使用.NET 4框架在VS2010中编译并运行测试套件。即使它没有得到维护,它仍然可以工作。 - TMN

0
今天我发现自己问了同样的问题,因为我想构建一个BizTalk管道组件来解析特定元素的传入消息。
经过一些搜索,我发现XPathReader程序集随BizTalk一起提供,并驻留在GAC中。
只需引用GAC程序集Microsoft.BizTalk.XPathReader.dll,您就可以开始运行了!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接