c++ - XML 根据不断变化的参数/变量获取值

标签 c++ xml

我正在编写一个 XML 文件,我需要根据条件指定一些参数值,具体取决于我的应用程序将在运行时分配的参数。

类似的东西

<?xml version = "1.0" encoding="UTF-8" standalone="yes"?>
<IF x >= 3>
<THEN> <Length>4</Length></THEN>
<ELSE> <Length>5</Length></ELSE>
</IF>

每次查询长度值时,我都需要从我的 qt c++ 应用程序中设置 x 的值

这可能吗?

最佳答案

好吧,这是软件,所以一切皆有可能...

但是,您所描述的肯定不容易,而且几乎肯定有更好的方法来实现。

从 XML 片段来看,这就像您想将一些代码存储在 XML 文件中,然后在运行时“执行”它,使其能够访问“x”和“长度”等 C++ 变量。

可以通过嵌入(例如)Lua 来做到这一点你的应用程序中的解释器,将 C++ 对象、函数和变量绑定(bind)到 Lua,然后将 Lua“片段”存储在 XML 文件中。一切皆有可能,但这是一项相当大的工作。这是非常强大的,因此具有潜在的不安全性和危险性。

但通常,您希望在代码中保留逻辑,在 XML 中保留数据。所以值“3”、“4”和“5”可能是数据,但解释如何使用它们的代码属于 C++

 <xLength testValue="3" resultGt="4" resultLe="5"/>

C++伪代码-

int testValue = xml.getAttr("testValue");
if (x >=  testValue)
   Length = xml.getAttr("resultGt");
else 
   Length = xml.getAttr("resultLe");

关于c++ - XML 根据不断变化的参数/变量获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16912304/

相关文章:

c++ - 给定 3D 旋转矩阵和 3D 方向 vector 求角度差

c# - 从 XmlWriter 中删除编码

c# - streamreader 读出 xml 文件的行

c# - XPath:根据另一个节点选择一个节点?

c - 根据子元素的内容使用 XPath 过滤 XML

c++ - "hello world"string literal 可以赋给char * 类型吗?

c++ - 显示图像第 2 版

c++ - 使用 std::tuple 作为 std::unordered_map 的键

c++ - 如何在通过应用程序进行单步调试时检查堆分配?

Android ScrollView 弹出窗口不工作