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
),但仍将读取整个内容