当前位置: 首页>>代码示例>>C++>>正文


C++ XMLParser::FreeDoc方法代码示例

本文整理汇总了C++中XMLParser::FreeDoc方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLParser::FreeDoc方法的具体用法?C++ XMLParser::FreeDoc怎么用?C++ XMLParser::FreeDoc使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在XMLParser的用法示例。


在下文中一共展示了XMLParser::FreeDoc方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: path

void
Map::CreateFromXML (const string & xmldoc)
{
    XMLParser *parser = XMLParser::GetInstance ();
    ustring path (xmldoc);
    ustring attr;

    m_main_it = m_expl_it = m_layers.end ();

    parser->LoadDoc (xmldoc);

    for (const Node * n = parser->getNode ("//author"); n != NULL;
	 n = parser->NextSibling (n))
      {
	  // n must be NULL, on optionnal nodes.
	  // (specified in the DTD XML).
	  if (parser->isTextNode (n) || (n == NULL))
	      continue;
	  m_infos.push_back (parser->getText (n));

      }

    AbsolutePath (path);

    for (const Node * n = parser->getNode ("//layer");
	 n != NULL; n = parser->NextSibling (n))
      {
	  if (parser->isTextNode (n))
	      continue;
	  path += parser->getText (n);
	  m_layers.push_back (Surface::CreateFromFile (path));
	  attr = parser->getAttribute (n, "type");

	  layer_add_vfunc (path);

	  if (attr != "explosion")
	      m_layers.back ().DisplayFormatAlpha ();
	  AbsolutePath (path);

	  // layers iterator are already to the sentinel of the container
	  // so we just need to decreasing it.
	  // (to access to the last element).
	  if (attr == "ground")
	      m_main_it--;
	  else if (attr == "explosion")
	      m_expl_it--;

      }

    if ((m_main_it == m_layers.end ()) || (m_expl_it == m_layers.end ()))
	throw MapException ("No \"main\" or \"explosion\" layer type found");

    parser->FreeDoc ();
    XMLParser::CleanUp ();

    m_init_draw = true;
}
开发者ID:MilfordMiss90,项目名称:chenilles,代码行数:57,代码来源:map.cpp


注:本文中的XMLParser::FreeDoc方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。