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