首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >像JAXB一样在QT中生成XML

像JAXB一样在QT中生成XML
EN

Stack Overflow用户
提问于 2014-05-19 07:59:00
回答 2查看 1.5K关注 0票数 1

我从XSD文件中生成了一个带有CodeSynthesis的CodeSynthesis类。现在,我希望创建一个C++对象,用数据填充它,并将其序列化为XML或JSON格式。如何生成,我还使用了框架Qt。看起来应该像JAXB。例如(JavaCode):

代码语言:javascript
复制
Worker w = new Worker();
w.setName("Peter");
w.setStreet("...");
String xml = "XMLGenerator".generate(w);`

这个是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-15 09:46:49

是的是可能的。

CodeSynthesis XSD文档中有一个hello示例,其中创建了一个C++对象,然后将其序列化为XML。

请在以下网站上阅读更多有关这方面的信息:

C++/树映射入门指南 (第2.5节添加序列化)

票数 1
EN

Stack Overflow用户

发布于 2014-05-19 09:16:52

您可以使用DOM类在Qt中创建XML文件。DOM通过将整个XML文档表示为内存中的节点对象树来工作。:

代码语言:javascript
复制
QDomDocument document;

QDomElement d = document.createElement( "document" );
d.setAttribute( "name", "DocName" );

QDomElement a = document.createElement( "author" );
a.setAttribute( "name", "AuthorName" );

QDomText text = document.createTextNode( "Some text" );

document.appendChild( d );
d.appendChild( a );
d.appendChild( text );

//Writing to a file

QFile file( "simple.xml" );
if( !file.open( QIODevice::WriteOnly | QIODevice::Text ) )
{
qDebug( "Failed to open file for writing." );
return -1;
}
QTextStream stream( &file );
stream << document.toString();
file.close();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23732515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档