Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我有一个巨大的XML文件,我想把它的子树读入C++;boost::属性树::树类型_C++_Xml_Boost_Boost Propertytree_Readxml - Fatal编程技术网

C++ 我有一个巨大的XML文件,我想把它的子树读入C++;boost::属性树::树类型

C++ 我有一个巨大的XML文件,我想把它的子树读入C++;boost::属性树::树类型,c++,xml,boost,boost-propertytree,readxml,C++,Xml,Boost,Boost Propertytree,Readxml,通常的做法是使用 boost::property_tree::ptree pt1; boost::property_tree::read_xml( XML_FILE_PATH, pt1 ); 但是它读取整个XML文件,这在pt1中是非常巨大的 所以我认为,当我们只想读一棵儿童树时,这是低效的 还有另一个read_xml重载函数,它接受文件类型istream,但我不知道如何使用它来解决这个问题 boost::property_tree::read_xml( iStream, pt1 );

通常的做法是使用

boost::property_tree::ptree pt1;
boost::property_tree::read_xml( XML_FILE_PATH, pt1  );
但是它读取整个XML文件,这在pt1中是非常巨大的

所以我认为,当我们只想读一棵儿童树时,这是低效的

还有另一个read_xml重载函数,它接受文件类型istream,但我不知道如何使用它来解决这个问题

boost::property_tree::read_xml( iStream, pt1  );

谢谢

如果不读取整个文件,如何验证文件是否正确并关闭顶级标记?与任何子树一样,您需要读取直到标记关闭。重载函数将要求您创建
std::istream
(如
std::ifstream
),但仍将读取整个内容