gpt4 book ai didi

c++ - 从 XML 中提取特定数字属性的有效方法

转载 作者:行者123 更新时间:2023-11-30 02:13:18 24 4
gpt4 key购买 nike

我工作的应用程序使用 XML 进行保存/恢复。这是一个示例片段:

<?xml version="1.0" standalone="yes"?>
<itemSet>
<item handle="2" attribute1="30" attribute2="blah"></item>
<item handle="5" attribute1="27" attribute2="blahblah"></item>
</itemSet>

我希望能够有效地预处理我从配置文件中读入的 XML。特别是,我想从上面的示例配置中提取 handle 值。

理想情况下,我需要一个函数/方法能够传入不透明的 XML 字符串,并返回列表中的所有句柄值。对于上面的示例,将返回一个包含 2 和 5 的列表。

我知道有一个正则表达式可以提供帮助,但这是最有效的方法吗?字符串操作的成本可能很高,并且我可能需要在配置文件中处理 1000 多个 XML 字符串。

最佳答案

您正在寻找一种面向流的 XML 解析器,它一次读取 XML 中的每个节点,而不是将整个内容加载到内存中。

最著名的一个是 SAX - Simple API for XML

这是一个 good article描述为什么要使用 SAX 以及在 C++ 中使用 SAX 的具体情况。

您可以将 SAX 视为 XML 的解析器,它只将最低限度的内容加载到内存中,因此可以很好地处理非常大的 XML 文档。与要求您将整个文档加载到内存中的 Regex 或 DOM 方法相比。

关于c++ - 从 XML 中提取特定数字属性的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/552253/

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