C++ 如何使用OpenCV库访问xml文件中的子节点? - abc - 1. - 0 123 0 - 1. 12 1.

C++ 如何使用OpenCV库访问xml文件中的子节点? - abc - 1. - 0 123 0 - 1. 12 1.,c++,xml,opencv,C++,Xml,Opencv,正如上面的xml文件一样,如何读取在不同段中标记的数据(“状态”)。 我试图使用filestorge和filenode来实现这一点,但没有找到任何示例来演示。 如果我可以访问子节点,问题就会得到解决。 有没有办法通过OPENCV访问xml中一个节点的子节点? 请随意提出任何想法或例子。谢谢 我刚找到一个有用的图书馆。 cvFileStorage与FileStorage不同。 显然,这一个更有用。 附件是检索子节点数据的代码。有了它,我们可以检索任何级别的节点 <?xml version="

正如上面的xml文件一样,如何读取在不同段中标记的数据(“状态”)。 我试图使用filestorge和filenode来实现这一点,但没有找到任何示例来演示。 如果我可以访问子节点,问题就会得到解决。 有没有办法通过OPENCV访问xml中一个节点的子节点?
请随意提出任何想法或例子。谢谢

我刚找到一个有用的图书馆。 cvFileStorageFileStorage不同。 显然,这一个更有用。 附件是检索子节点数据的代码。有了它,我们可以检索任何级别的节点

<?xml version="1.0" encoding="UTF-8"?>
-<video>
<!--Total video No.: 10-->
    <Subject>abc</Subject>
    -<Video1>
        <Video_No>1</Video_No>
       -<segment1>         
           <Start_Frame>0</Start_Frame>
           <End_Frame>123</End_Frame>
           <Status>0</Status>
        </segment1>
        -<segment2>         
           <Start_Frame>1</Start_Frame>
           <End_Frame>12</End_Frame>
           <Status>1</Status>
        </segment2>
代码似乎有点麻烦,如果你有更好的想法,请发表你的想法

随附的是API

//path is file name;
CvFileStorage*  fs = cvOpenFileStorage(path.c_str(), 0, CV_STORAGE_READ);
CvFileNode* fn = cvGetFileNodeByName(fs,0,"Video1");
CvFileNode*  fn1 = cvGetFileNode( fs, fn, cvGetHashedKey(fs, "segment1", -1,0 ), 0 );
int i = cvReadIntByName(fs,fn1,"Start_Frame"); 
详情请查看链接:

看一看
CvStringHashNode* cvGetHashedKey(CvFileStorage* fs, const char* name, int len=-1, int create_missing=0 )
CvFileNode* cvGetFileNode(CvFileStorage* fs, CvFileNode* map, const CvStringHashNode* key, int create_missing=0 )