c++读xml文件 MSXML

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/calib3d/calib3d.hpp>
#include "opencv2/imgcodecs/legacy/constants_c.h"
#include <opencv2/opencv.hpp>
#include "math.h"
#include <stdio.h>
#include <tchar.h>
#include <windows.h>
#import <msxml6.dll> rename_namespace(_T("MSXML"))
using namespace std;struct Node
{double x1;double y1;double x2;double y2;
};void getXYbyXML(string fileName, vector<Node>& nodeList) {HRESULT hr = CoInitialize(NULL);if (SUCCEEDED(hr)) {try {MSXML::IXMLDOMDocument2Ptr xmlDoc;hr = xmlDoc.CreateInstance(__uuidof(MSXML::DOMDocument60),NULL, CLSCTX_INPROC_SERVER);// TODO: if (FAILED(hr))...if (xmlDoc->load(fileName.data()) != VARIANT_TRUE) {printf("Unable to load input.xml\n");}else {printf("XML was successfully loaded\n");xmlDoc->setProperty("SelectionLanguage", "XPath");MSXML::IXMLDOMElementPtr node = xmlDoc->GetdocumentElement();MSXML::IXMLDOMNodePtr pNode;MSXML::IXMLDOMNodePtr pNode1;MSXML::IXMLDOMNodePtr pNode3;MSXML::IXMLDOMNodeListPtr pNodeList = node->GetchildNodes();VARIANT varVal;assert(pNodeList != NULL);int nCount = (int)pNodeList->length;for (int i = 0; i < nCount; i++){pNode = pNodeList->item[i];pNode->get_nodeTypedValue(&varVal);MSXML::IXMLDOMNodeListPtr pNodeList1 = pNode->GetchildNodes();for (int j = 0; j < (int)pNodeList1->length; j++) {pNode1 = pNodeList1->item[j];pNode1->get_nodeTypedValue(&varVal);if ((string)pNode1->nodeName == "bndbox") {//cout << "okk" << endl;vector<int> xy;Node nodeXY;MSXML::IXMLDOMNodeListPtr pNodeList2 = pNode1->GetchildNodes();for (int k = 0; k < pNodeList2->length; k++) {pNode3 = pNodeList2->item[k];pNode3->get_nodeTypedValue(&varVal);xy.push_back(atoi((char*)(_bstr_t)varVal));//cout << "node name: " << (char*)pNode1->nodeName << ", "//    << "node value: " << (char*)(_bstr_t)varVal << endl;}nodeXY.x1 = xy[0];nodeXY.y1 = xy[1];nodeXY.x2 = xy[2];nodeXY.y2 = xy[3];nodeList.push_back(nodeXY);}}}}}catch (_com_error& e) {printf("ERROR: %ws\n", e.ErrorMessage());}CoUninitialize();}
}int main(int argc, char* argv[]) {vector<Node> nodeList;getXYbyXML("input2.xml", nodeList);for (int kk = 0; kk < nodeList.size(); kk++) {cout << nodeList[kk].x1 << " ," << nodeList[kk].y1 << " ," << nodeList[kk].x2 << " ," << nodeList[kk].y2 << endl;}return 0;
}

c++读xml文件 MSXML相关推荐

  1. 02_Android写xml文件和读xml文件

     新建Android项目 编写AndroidManifest.xml,使本Android项目具有单元测试功能和写外设的权限. <?xml version="1.0" en ...

  2. Qt: QXMLStreamReader,读XML文件实例

    主要接口: 1.TokenType QXmlStreamReader::readNext() 功能:读取下一个标记,并返回其类型. 主要的类型有: enum QXmlStreamReader::Tok ...

  3. TinyXML-2 读 XML 文件

    要读的XML文件 示例代码 #include <iostream> #include "tinyxml2.h"using namespace std; using na ...

  4. 使用tinyxml读xml文件信息到结构体

    下载TinyXML的网址:http://www.grinninglizard.com/tinyxml/ 使用TinyXML只需要将其中的6个文件拷贝到项目中就可以直接使用了,这六个文件是:tinyxm ...

  5. python读xml文件生成头文件_Python根据指定文件生成XML的方法

    因项目需要根据指定格式的文件生成XML标注文件,可以方便使用LabelImg打开进行编辑和查看.其原始文件默认使用逗号进行分隔,如下所示: 第1个值:原始图片中切图小文件,以AIpng_x,其中x代表 ...

  6. java读xml文件一般用什么_java读xml文件

    /** * 读取sms.xml配置文件信息 * @param file * @throws IOException * @throws JDOMException */ public ReadSMSF ...

  7. python读xml文件生成.h头文件_PYTHON读写xml文件的方法

    要生成的xml文件格式如下: [python] sample xml thing ma xiaoju Springs Widgets, Inc. First I think widgets are g ...

  8. python读xml文件生成.h头文件_Python创建xml文件示例

    Python创建xml文件示例 这里有新鲜出炉的 Python 入门,程序狗速度看过来! Python 编程语言 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido van Ros ...

  9. boost库用property_tree读xml文件

    深刻理解boost property_tree的用法,通过一级循环判断,来遍历xml文件里的一级二级目录: 源代码: #include<boost/property_tree/ptree.hpp ...

  10. python读xml文件生成头文件_python如何读取生成voc xml格式标注信息

    python生成voc xml文件 from lxml import etree class GEN_Annotations: def __init__(self, filename): self.r ...

最新文章

  1. 安全测试的基本原则有哪些?
  2. Cannot determine Numba type of <class ‘numba.core.dispatcher.LiftedLoop‘
  3. java中是引用传递还是值传递....
  4. c语言哈夫曼压缩文本,用哈夫曼压缩文件(C语言)
  5. app之---豆果美食
  6. Nginx设置禁止通过IP访问服务器
  7. 关于ddx/ddy重建法线在edge边沿上的artifacts问题
  8. 走错路也要美美的!富有创意的404页面设计灵感
  9. 西数硬盘固件刷新工具_一个1TB移动硬盘的数据恢复过程,含分析问题与解决方式...
  10. 华为机试HJ12:字符串反转
  11. Qt之QListView使用
  12. android 字体淡入淡出,如何让文字在Android中淡入淡出?
  13. [codeforces538F]A Heap of Heaps
  14. Principle 5.13 完美汉化版 Mac平台交互动效设计神器
  15. 网络安全实验室-解密关1
  16. Android手机修改wifi图标,安卓手机怎么改wifi密码?
  17. android导出微信朋友圈怎么发文字,微信朋友圈气泡字怎么弄 微信朋友圈气泡文字生成教程...
  18. android+添加网络权限,已在AndroidManifest.xml增添网络权限,运行还报错
  19. 港科夜闻|香港科大(广州)(筹)与民心港人子弟学校签署合作框架协议
  20. js实现html代码高亮,使用highlight.js高亮代码

热门文章

  1. Kaggle案例泰坦尼克号问题
  2. afudos备份bios不动_映泰主板刷新AMI BIOS失败自救
  3. Ubuntu18.04安装QQ For Linux
  4. Rplot函数图形参数设置
  5. MAC——本机域名[localhost]配置
  6. 万恶的BOM,万恶的微软
  7. 黑客江湖之八大门派和东邪西毒南帝北丐中神通
  8. 2020电子信息夏令营(湖大,吉大,中山,武大,浙大)
  9. 解决安卓CPU使用率过高问题
  10. XFS (dm-0) I/O error问题修复