不使用 XmlDocument 的 C# xml 读/写/xpath

标签 c# xml xpath xmldocument

我正在重构现有系统中的一些代码。目标是删除 XmlDocument 的所有实例以减少内存占用。但是,当某些规则适用时,我们使用 XPath 来操作 xml。有没有一种方法可以在不使用将整个文档加载到内存中的类的情况下使用 XPath?我们已将所有其他实例替换为 XmlTextReader,但这些实例之所以有效,是因为没有 XPath 且读取非常简单。

一些 XPath 使用其他节点的值作为其决策的基础。比如message节点的值可能是基于amount节点的值,所以需要同时访问多个节点。

最佳答案

如果您的 XPATH 表达式基于访问多个节点,您只需将 XML 读入 DOM。不过有两件事。首先,您不必将其全部 读入 DOM,只需将您要查询的部分读入即可。其次,您使用哪个 DOM 会有所不同; XPathDocument 是只读的,并针对 XPATH 查询速度进行了调整,这与更通用但昂贵的 XmlDocument 不同。

关于不使用 XmlDocument 的 C# xml 读/写/xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1504467/

相关文章:

c# - JSON.NET 的 JsonConvert 我做错了什么

java - XSD:通过 Jaxb 插件生成 POJO 时,不同命名空间的导入元素正在占用父级的目标命名空间

c++ - xpath 设置上下文需要迭代

python - 蜘蛛没有抓取适量的元素

c# - XSLT 批处理

c# - 找到搜索数据结构字符串比较的最佳方法

c# - While 循环线程

C# 读取格式不正确的 XML 文件

c# - 根据父节点的属性获取子节点

css - 嵌套的 findElement,其中第一个是 xpath,第二个是 css,没有按预期工作