使用mini-xml库创建xml文件

时间:2016-08-26 08:58:43

标签: c++ xml xml-parsing mini-xml

我使用mini-xml创建一个xml文件。 我的格式如下。

<?xml version='1.0' encoding='ISO-8859-1'?>
<?xml-stylesheet type='text/xsl' href='image_metadata_stylesheet.xsl'?>
<dataset>
<name>imglab dataset</name>
<comment>Created by imglab tool.</comment>
<images>
  <image file='train/10.png'>
    <box top='154' left='450' width='56' height='155'/>
  </image>
  <image file='train/1051.png'>
    <box top='132' left='484' width='40' height='116'/>
    <box top='97' left='452' width='40' height='105'/>
    <box top='147' left='398' width='50' height='133'/>
  </image>
</images>
</dataset>

我喜欢将这些数据写入xml文件。 我寻找样品,但不容易找到。 我可以创建以下元素。

FILE *fp;
 mxml_node_t *tree;
 fp = fopen("filename.xml", "w");
 if(fp==NULL){
    cout << "Error in xml file!" << endl;   
    exit(1);             
 }
 mxml_node_t *xml;    /* <?xml ... ?> */
 mxml_node_t *dataset;   /* <data> */
 mxml_node_t *images;   /* <data> */
 mxml_node_t *box;   /* <node> */
 mxml_node_t *image;  /* <group> */
 xml = mxmlNewXML("1.0");
 dataset = mxmlNewElement(xml, "dataset");
 images = mxmlNewElement(dataset, "images");
 image = mxmlNewElement(images, "image");
 box = mxmlNewElement(image, "box");

但实际写入xml文件,不知道如何写入xml文件。 我可以举例说明如何使用mini-xml在c / c ++中创建xml文件。

由于

1 个答案:

答案 0 :(得分:1)

查看保存XML 段落中的documentation,这似乎非常明显:

 FILE *fp;
 mxml_node_t *tree;
 fp = fopen("filename.xml", "w");
 mxmlSaveFile(tree, fp, MXML_NO_CALLBACK);
 fclose(fp);

如果可以,我建议您使用另一个C ++ xml库(例如pugyxml,tinyxml等)。你的图书馆感觉很旧,不是非常C ++,只是为了防范错误。