我如何在 C++ 中读取 xml?

how can i read from xml in c++?

我从 C++ 开始,我尝试在我的代码中使用 xml,这是我的源代码:

cv::FileStorage fs("facedata.xml", cv::FileStorage::WRITE);
cv::Mat mask = cv::Mat::zeros(8, 8, CV_32FC1); // all 0
mask(Rect(2,2,4,4)) = 1;
fs << "histo" <<mask;
CvMat * Mat=cvCreateMat(8,8,CV_32FC1);
cvZero(Mat);
fs.release();
cv::FileStorage fs2("facedata.xml", cv::FileStorage::READ);
CvScalar pix;
int K,L;
fs2 [ "histo" ]>> Mat;
for ( K=0;K<8;K++)
   for ( L=0;L<8;L++){
        pix=cvGet2D( Mat,K,L);
        cout<<(int) pix.val[0]<<endl;}

但是Mat没有returnhisto的内容,我需要你的帮助。

David,请避免 在您的 opencv 代码中使用任何 c-api 结构。

任何需要指针或以 cv* 开头的东西都应该被排除!!

cv::FileStorage fs("facedata.xml", cv::FileStorage::WRITE);
cv::Mat mask = cv::Mat::zeros(8, 8, CV_32FC1); // all 0
mask(Rect(2,2,4,4)) = 1;
fs << "histo" <<mask;
fs.release();

//CvMat * Mat=cvCreateMat(8,8,CV_32FC1); // OUCH, NOO!
//cvZero(Mat);
cv::Mat m; // please do not call a variable 'Mat', since there's a class with same name already.

cv::FileStorage fs2("facedata.xml", cv::FileStorage::READ);
fs2 [ "histo" ]>> m;
cout<< m <<endl; // you can just dump a cv::Mat to stdout !