示例#1
0
bool xml_languaget::parse(
  std::istream &instream,
  const std::string &path,
  message_handlert &message_handler)
{
  // store the path

  parse_path=path;

  // parsing

  xml_parser.clear();
  xml_parser.filename=path;
  xml_parser.in=&instream;
  xml_parser.set_message_handler(message_handler);

  bool result=yyxmlparse();

  // save result
  xml_parse_tree.swap(xml_parser.parse_tree);

  // save some memory
  xml_parser.clear();

  return result;
}
示例#2
0
// 'do it all' function
bool parse_xml(
  std::istream &in,
  const std::string &filename,
  message_handlert &message_handler,
  xmlt &dest)
{
  xml_parser.clear();
  xml_parser.location.set_file(filename);
  xml_parser.in=∈
  xml_parser.set_message_handler(message_handler);

  bool result=yyxmlparse();

  // save result
  xml_parser.parse_tree.element.swap(dest);

  // save some memory
  xml_parser.clear();

  return result;  
}