gpt4 book ai didi

c++ - 如何将 XML 节点转换为 C++ 结构?

转载 作者:可可西里 更新时间:2023-11-01 16:35:18 24 4
gpt4 key购买 nike

我是编程新手,我想知道是否可以将 XML 节点转换为 C++ 结构。例如,我有一个包含以下 XML 的文件:

<?xml version="1.0" encoding="utf-8"?>
<StrucDescription>
<StrucName>
<unStrucNameMember1 type="uint16">0</unStrucNameMember1>
<unStrucNameMember2 type="uint8">0</unStrucNameMember2>
<ulStrucNameMember3 type="int32">0</ulStrucNameMember3>
<bStrucNameMember4 type="bool">true</bStrucNameMember4>
<szStrucNameMember5 type="char" size="32"></szStrucNameMember5>
</StrucName>
</StrucDescription>

是否可以从上述 XML 创建用于 future 数据存储的波纹管结构?

struct StrucName
{
uint16 unStrucNameMember1;
uint8 unStrucNameMember2;
int32 ulStrucNameMember3;
bool bStrucNameMember4;
char szStrucNameMember5[32];

StrucName ()
: unStrucNameMember1(0)
, unStrucNameMember2(0)
, ulStrucNameMember3(0)
, bStrucNameMember4(true)
, szStrucNameMember5()
};

谢谢大家的回答。

最佳答案

为 XML 文档创建编程语言结构称为 XML data binding .如果您想在(之前)编译时执行此操作,请在谷歌上搜索 C++ xml data binding。到目前为止我看到的最有前途的工具是 XSD from Codesynthesis .它可以作为 GPLed 版本使用。 (请注意,您需要一个描述文件的 XML 架构。)

如果您想在运行时(动态地)为任意 XML 结构执行此操作——这是不可能的。既然你写道你是“编程新手”,我建议从一本 C++ 初学者书籍开始,然后很快就会明白为什么这是不可能的:你(或工具)编写源代码对于结构及其用法。要通过此名字引用您的 StrucName,您必须在编写代码时(即在编译时)知道您有一个使用此名称的 XML 标记。如果您在运行时只知道 XML 布局及其名称,则无法在源代码中引用这些名字对象,因为它们尚不为人所知。

关于c++ - 如何将 XML 节点转换为 C++ 结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3726739/

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