我已经在谷歌上查过了,相对来说是空的。在我开始编写自己的XML解析器之前,我想我应该在这里问一下:我正在寻找一个低资源、快速、可回绕(或仅向后、非缓存)的XML-Reader。由于我正在使用的一些数据结构,.NET附带的只向前的XMLReader将花费大量的时间/资源来执行我想要的那种解析,并且使用XMLDocument将整个文档加载到内存中最终会破坏机器。
那么,有没有人知道让XMLReader从一个元素到另一个元素反向查找的方法(没有一些疯狂的开销)?或者,有没有人知道后向搜索XML Reader?或者我应该只写我自己的阅读器?
谢谢,-R
发布于 2011-11-14 04:42:05
文件大小在不久的将来可能会突破40 GB的限制
对于您想要做的事情,XML不是一个好的候选者。处理如此大量的数据,数据库的效率会高得多。您应该将数据从XML加载到数据库中,然后就可以处理该数据库了。
发布于 2011-11-14 01:21:28
您可以尝试使用DataSet.ReadXML()将XML文件加载到DataSet对象中。它适用于许多格式清晰的XML文件(大小小于1 1GB )。然后,您可以使用DataTable.Select语法在DataSet内的DataTables中搜索数据。
如果您有一个示例XML文件,可以尝试使用我开发的这个玩具应用程序加载它,该应用程序将XML加载到DataSet中,并在网格中显示DataTables以供编辑:http://www.dot-dash-dot.com/files/WTFXMLSetup_1_9_0.msi。这将显示您的XML是否完全适合DataSet。
显然,正如我在上面的评论中指出的那样,使用任何工具在XML中处理40 as都太大了-它应该在数据库中。
该项目的源代码位于:http://www.dot-dash-dot.com/files/wtfxml.zip
对于所有投反对票的人,请注意事件的时间表:
5 hours ago - asked (with no size criteria) and initially answered as above
4 hours ago - size criteria mentioned
4 hours ago - My comment: too big for XML, use a databasehttps://stackoverflow.com/questions/8113158
复制相似问题