我正在开发ASP.NET中的博客引擎,并且实现了一个存储库以使用XML文件作为数据存储。 XML存储库主要用于本地使用和测试目的。现在虽然它可能不是今天拥有大量可用内存和处理能力的计算机的问题,但我想了解一些具体细节:
无论如何,如果对象图的大小差别不大(XmlDocument和XPathDocument),那么完成工作就不会有什么坏处,但是我想在这里实现最好的解决方案。
答案 0 :(得分:6)
XPathDocument也将完整的文档读入内存,这需要支持all the XPath axes像前兄弟,前一个,祖先,父,子,后代,后续兄弟,跟随。
如果要在不将整个文档加载到内存中的情况下执行XPath或XQuery查询,则必须查看专用的XML数据库,或者至少使用支持XQuery的XML数据类型的SQL数据库。例如,MS SQL服务器有an XML data type,并支持一些(在我看来相当有限)XQuery版本。