gpt4 book ai didi

c# - XPathDocument 与 XPathNavigator VS Xmlreader?

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:12 26 4
gpt4 key购买 nike

我看到了这个问题:

XPathDocument vs. XmlDocument

但它没有我正在寻找的信息:我的问题:

我知道 XPathDocument 将完整 xml 加载到内存中:

我的问题来自 xml 已经加载的阶段:

其中哪一个将更快地找到所需的元素:

XPathDocument with XPathNavigator

xmlReader with If's conditions

最佳答案

如果通过

"the xml is already loaded"

你的意思是它已经被加载到 XPathDocument 或 XmlDocument 中,那么使用 XPathNavigator 或 XmlReader 的性能将是相同的。两者都将遍历代表 XPath 数据模型的已解析的内存中节点。

两者之间的主要区别是 XmlReader 将提供仅向前访问,而 XPathNavigator 提供对文档的游标访问。当您不想承担将整个文档加载到内存中的成本时,直接与 XmlReader 交互非常有用。否则它就没那么有用了。

我强烈建议使用 XPathNavigator。您可以通过两种主要方式与 XPathNavigator 进行交互:

  1. 构建您的状态机(使用 if/elses)。使用 XPathNavigator 而不是 XmlReader 这样做的一大好处是,由于 XPathNavigator 的游标访问模型,您的状态机将大大简化。例如:需要查看父级是否具有特定属性?只需导航到它并查看即可。
  2. 使用 XPath 查询查找您要查找的数据。可能不会那么快,但可能会比构建自己的状态机更不容易出错。当然,这需要您精通 XPath。

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

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