gpt4 book ai didi

c# - XPathDocument 与 XmlDocument

转载 作者:数据小太阳 更新时间:2023-10-29 01:47:56 24 4
gpt4 key购买 nike

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

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

无论如何,如果对象图的大小差别不大(XmlDocument 和 XPathDocument),完成工作也无妨,但我想在这里实现最佳解决方案。

最佳答案

XPathDocument 也将完整的文档读入内存,这是支持 all the XPath axes 所必需的像前面的 sibling ,前面的,祖先, parent , child ,后代,下面的 sibling ,下面。

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

关于c# - XPathDocument 与 XmlDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7135897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com