1

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

Worker w = new Worker();
w.setName("Peter");
w.setStreet("...");
String xml = "XMLGenerator".generate(w);`

这可能吗?

4

2 回答 2

1

对的,这是可能的。

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

阅读更多关于它的信息:

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

于 2014-07-15T09:46:49.767 回答
0

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

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();
于 2014-05-19T09:16:52.117 回答