XPathDocument vs. XmlDocument

本文关键字:XmlDocument vs XPathDocument | 更新日期: 2023-09-27 18:06:08

我正在ASP中开发一个博客引擎。NET和一个存储库被实现为使用XML文件作为数据存储。XML存储库将主要用于本地使用和测试目的。现在,虽然这可能不是今天的计算机的问题,有很多可用的内存和处理能力,但我还是想知道一些具体的细节:

    XPathDocument是一个只读文档,而XmlDocument是一个读/写文档。因此,XPathDocument是否比XmlDocument更轻量级,因为它缺乏编写功能?
  • 我知道,当你用XmlDocument加载XML文档时,它会在内存中加载整个文档,如果文档大小很大,这可能是一个问题。XPathDocument做同样的事情吗?如果是这样,如何从XML文档中读取单个节点或一组节点,而不首先将整个文档加载到内存中?我知道我可以使用XmlTextReader,但这意味着我必须在依次访问节点时解析整个文档。我希望能够使用XPath表达式查询XML文档。

无论如何,如果对象图的大小没有太大差异(XmlDocument和XPathDocument),那么完成这项工作不会有什么坏处,但我想在这里实现最佳解决方案。

XPathDocument vs. XmlDocument

XPathDocument也将完整的文档读入内存,这是支持所有XPath轴所需要的,如前兄弟、前、祖先、父、子、后代、后兄弟、后兄弟。

如果您想在不将整个文档加载到内存中的情况下执行XPath或XQuery查询,那么您必须查看专门的XML数据库,或者至少查看具有XQuery支持的XML数据类型的SQL数据库。例如,MS SQL服务器具有XML数据类型,并支持某些版本的XQuery(在我看来相当有限)。