解析的xml文件

<?xml version="1.0" encoding="utf-8"?><Objects><person><label>15</label><xmin>207</xmin><ymin>106</ymin><xmax>489</xmax><ymax>381</ymax><score>0.99566</score></person><person><label>15</label><xmin>546</xmin><ymin>57</ymin><xmax>912</xmax><ymax>395</ymax><score>0.984854</score></person><person><label>15</label><xmin>898</xmin><ymin>103</ymin><xmax>1223</xmax><ymax>382</ymax><score>0.958104</score></person><person><label>15</label><xmin>2</xmin><ymin>61</ymin><xmax>381</xmax><ymax>389</ymax><score>0.906186</score></person></Objects>

c++文件

#include <string>
#include <string.h>
#include <stdio.h>
#include "stdlib.h"
#include <libxml/xpath.h>
#include <libxml/parser.h>
#include <libxml/xmlmemory.h>
#include <libxml/xmlstring.h>
#include <jqw.h>int main()
{objects obj;
double fps;xmlDocPtr pDoc = xmlReadFile("parameter.xml", "UTF-8", XML_PARSE_RECOVER); //获取XML文档的指针if(NULL == pDoc){fprintf(stderr, "xmlParseFile Error in %s %d\n",__FUNCTION__, __LINE__);}xmlNodePtr pRoot = xmlDocGetRootElement(pDoc);//获取根节点if(NULL == pRoot){fprintf(stderr, "xmlDocGetRootElement Error in %s %d\n", __FUNCTION__, __LINE__);xmlFreeDoc(pDoc);}printf("Node name is %s!\n", pRoot->name);int i=0;xmlNodePtr pFirst = pRoot->xmlChildrenNode;//获取子节点while(NULL != pFirst){//printf("---------------i= %d\n", i);if(!xmlStrcmp(pFirst->name, (const xmlChar *)("person"))){xmlNodePtr pSecond = pFirst->xmlChildrenNode;while(NULL != pSecond){xmlChar* value= NULL;if(!xmlStrcmp(pSecond->name, (const xmlChar *)("label"))){i=i+1;value = xmlNodeGetContent(pSecond);//printf("\n%s-->%s\n", pSecond->name, value);char * stream = (char *) value;obj.p[i].lable=atoi(stream);printf("obj.person[%d].lable=%d\n",i,obj.p[i].lable);stream=NULL;xmlFree(value);value = NULL;}if(!xmlStrcmp(pSecond->name, (const xmlChar *)("xmin"))){value = xmlNodeGetContent(pSecond);//printf("\n%s-->%s\n", pSecond->name, value);char * stream = (char *) value;obj.p[i].xmin=atoi(stream);printf("obj.person[%d].xmin=%d\n",i,obj.p[i].xmin);stream=NULL;xmlFree(value);value = NULL;}if(!xmlStrcmp(pSecond->name, (const xmlChar *)("ymin"))){value = xmlNodeGetContent(pSecond);//printf("\n%s-->%s\n", pSecond->name, value);char * stream = (char *) value;obj.p[i].ymin=atoi(stream);printf("obj.person[%d].ymin=%d\n",i,obj.p[i].ymin);stream=NULL;xmlFree(value);value = NULL;}if(!xmlStrcmp(pSecond->name, (const xmlChar *)("xmax"))){value = xmlNodeGetContent(pSecond);//printf("\n%s-->%s\n", pSecond->name, value);char * stream = (char *) value;obj.p[i].xmax=atoi(stream);printf("obj.person[%d].xmax=%d\n",i,obj.p[i].xmax);stream=NULL;xmlFree(value);value = NULL;}if(!xmlStrcmp(pSecond->name, (const xmlChar *)("ymax"))){value = xmlNodeGetContent(pSecond);//printf("\n%s-->%s\n", pSecond->name, value);char * stream = (char *) value;obj.p[i].ymax=atoi(stream);printf("obj.person[%d].ymax=%d\n",i,obj.p[i].ymax);stream=NULL;xmlFree(value);value = NULL;}if(!xmlStrcmp(pSecond->name, (const xmlChar *)("score"))){value = xmlNodeGetContent(pSecond);char * stream = (char *) value;//printf("\n%s-->%s\n", pSecond->name, value);obj.p[i].score=atof(stream);printf("obj.person[%d].score=%f\n",i,obj.p[i].score);stream=NULL;xmlFree(value);value = NULL;}pSecond = pSecond->next;}}pFirst = pFirst->next;}obj.personnum=i;printf("obj.personnum=%d\n",obj.personnum);xmlFreeDoc(pDoc);return 0;
}

jqw.h

#ifndef   __JQW_H__
#define   __JQW_H__struct person{int lable;int xmin;int ymin;int xmax;int ymax;float score;
};struct objects
{person p[3];int personnum;
};
#endif

编译脚本

#!/bin/bash
#
#gcc -I/usr/include/libxml2  parse_xml.cpp -o CreateXmlFile -L /usr/lib/i386-linux-gnu -lxml2
echo "finish compile"echo "start run pragram!!!"exit 0

c++ 解析xml文件相关推荐

  1. python中利用lxml模块解析xml文件报错XMLSyntaxError: Opening and ending tag mismatch

    今天在代码中第一次使用lxml解析xml文件时出错了, XMLSyntaxError: Opening and ending tag mismatch: keyEffectiveDate line 2 ...

  2. java xml中的冒号_Java jdom解析xml文件带冒号的属性

    Java jdom解析xml文件带冒号的属性 如果xml文件解析带了冒号的属性,一般都是要特别处理,这里是命名空间,N年前遇到过一次忘记记录,后来也忘了,这次再记录下. 解决了,记录下,分享给大家,百 ...

  3. XML专题:使用NSXMLParser解析xml文件

    使用NSXMLParser解析xml文件 1. 设置委托对象,开始解析      NSXMLParser *parser = [[NSXMLParser alloc] initWithData:dat ...

  4. SAX解析XML文件

    就目前来说,有三种方式可以解析XML文件:DOM.SAX.StAX.DOM将整个XML文件加载到内存中,并构建出节点树:应用程序可以通过遍历节点树的方式来解析XML文件中的各个节点.属性等信息:这种方 ...

  5. Java--Dom解析XML文件

          之前写过几篇关于Java中解析XML文件的方法,不过,感觉不够简单,今天重写了一遍代码,用到的是方法是Dom,其中加入了日志记录功能--Log4j.       好了,不多说了,先把XMl ...

  6. 10. 解析XML文件(SAX/DOM/ElementTre)

    XML的全称是eXtensible Markup Language, 意为可扩展的标记语言, 是一种用于标记电子文件使其具有结构性的标记语言.以XML结构存储数据的文件就是XML文件,它被设计用来传输 ...

  7. Dom方法,解析XML文件

    Dom方法,解析XML文件的基本操作 1 package com.demo.xml.jaxp; 2 3 import java.io.IOException; 4 5 import javax.xml ...

  8. [转载]VC轻松解析XML文件 - CMarkup类的使用方法

    VC轻松解析XML文件 - CMarkup类的使用方法 VC解析XML文件的工具有很多,CMarkup, tinyXML,还有IBM的,MS的等等. 据说tinyXML很好,可能字符集问题,我编译不了 ...

  9. python读取xml标注坐标_遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件...

    XML文件??? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 里面的标签都是可以随心所欲的按照他的命名规则来定义的,文件名为roi.xm ...

  10. python读取xml_python解析xml文件

    加载和读取xml文件 import xml.dom.minidom doc = xml.dom.minidom.parse(xmlfile) 获取xml文档对象(对子节点和节点node都适用) roo ...

最新文章

  1. PLSQL developer 连接不上64位Oracle 解决办法
  2. Linux虚拟地址空间布局
  3. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十:SDRAM模块③ — 页读写 α...
  4. [codevs 2926] 黑白瓷砖(2002年安徽省队选拔赛)
  5. HDU4825 Xor Sum 01字典树(Tire Tree)
  6. php7的稳定性,探索PHP7(一)--性能
  7. 开发辅助 | 阿里图标库iconfont入门使用
  8. android摄像头矩形框提取_视频图像摄像头跟踪的上位机系统设计
  9. 电池的寿命(信息学奥赛一本通-T1229)
  10. python怎么导出数据_如何用python将数据导出
  11. 【图像融合】基于小波变换的图像融合
  12. 使用 github + jekyll 搭建个人博客
  13. TCP客户端与服务端
  14. Linux在线词典项目,实现注册,登陆,查询单词以及查询历史记录,退出查询等功能,(涉及网络编程,进程线程,文件io,sqlite)
  15. php文章排序,php实现的常见排序算法汇总
  16. 直连网线和交叉网线的线序
  17. Win10系统切换输入法快捷键设置方法
  18. nvcc编译器之编译内幕(chapter 23)
  19. [转载](asp.net大型项目实践)
  20. 在vue中使用echarts,echarts-map:echarts画地图

热门文章

  1. Linux命令终端提示符显示-bash-4.2#解决方法【转载】
  2. g100显卡 linux驱动,nvidia geforce g100驱动
  3. chrome vue插件_VS Code 前端常用插件推荐
  4. python爬虫好学不_python爬虫好学吗
  5. 【LeetCode笔记 - 每日一题】334. 递增的三元子序列(Java、偏思路)
  6. 【LeetCode笔记】121. 买卖股票的最佳时机 / 剑指 Offer 63. 股票的最大利润(Java、动态规划)
  7. java移动接口发短信_Java面试零碎知识点
  8. excel教程自学网_Excel自学教程:万能查找函数Lookup的神应用和技巧
  9. linux设置历史命令保留数目限制,linux下修改history命令保存条数
  10. 有没有什么方法快速能找到导致软件崩溃的进程_崩溃!电脑突然黑屏无法启动...