FileStorage

//写入数据到xml文档中

string szName = "C:\\Users\\BZL\\Desktop\\1.xml";
	FileStorage fs(szName, FileStorage::WRITE);

	// seq_node 是一个 seq 型的节点, 以它为父节点,存入10个数据
	fs << "seq_node" << "[";
	for (int i = 0; i < 10; ++i) {
		fs << i;
	}
	fs << "]";

//  结果:0 1 2 3 4 5 6 7 8 9

	// map_node 是一个 map 型节点, 以它为父节点,存入10个数据
	fs << "map_node" << "{";
	for (int i = 0; i < 10; ++i) {
		fs << "node_" + to_string(i) << i;
	}
	fs << "}";

//  结果:

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9


	fs.release();

分割线/

string szName = "C:\\Users\\BZL\\Desktop\\1.xml";
	FileStorage fs(szName, FileStorage::READ);
	FileNode seqNode = fs["seq_node"];
	for (int i = 0; i < 10; ++i)
	{
		int a = 0;
		seqNode[i] >> a;
		cout << a << endl;
	}


/*
result:
0
1
2
3
4
5
6
7
8
9
*/

	FileNode mapNode = fs["map_node"];
	int b = 0;
	//注释掉的无法读取子节点的值
	//for (int i = 0; i < 10; ++i)
	//{
	//	cout << "node_" + to_string(i) << endl;
	//	fs["map_node","node_" + to_string(i)] >> b;
	//	cout << b << endl;
	//}

	FileNodeIterator it = mapNode.begin();
	for (; it != mapNode.end(); ++it)
	{
		*it >> b;
		cout << b << endl;
	}

/*
result:
0
1
2
3
4
5
6
7
8
9
*/

读取的内容如下:


      0 1 2 3 4 5 6 7 8 9

   

      0

    1

   

   

   

   

   

   

   

   

 







 

你可能感兴趣的:(Opencv)