本文整理汇总了C++中XMLParser::LoadFile方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLParser::LoadFile方法的具体用法?C++ XMLParser::LoadFile怎么用?C++ XMLParser::LoadFile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLParser
的用法示例。
在下文中一共展示了XMLParser::LoadFile方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Parse
void UserSettingsParser::Parse(LPCTSTR path, SchemeLoaderState* pState)
{
if(!FileExists(path))
{
return;
}
XMLParserCallback<UserSettingsParser> callback(*this, &UserSettingsParser::startElement, &UserSettingsParser::endElement, &UserSettingsParser::characterData);
XMLParser parser;
parser.SetParseState(&callback);
callback.SetUserData((void*)pState);
pState->m_pParser = &parser;
pState->m_State = 0;
try
{
parser.LoadFile(path);
}
catch (SchemeParserException& E)
{
CString err;
err.Format(_T("Error Parsing Scheme UserSettings XML: %s\n (file: %s, line: %d, column %d)"),
E.GetMessage(), E.GetFileName(), E.GetLine(), E.GetColumn());
LOG(err);
}
catch (XMLParserException& E)
{
CString err;
err.Format(_T("Error Parsing Scheme UserSettings XML: %s\n (file: %s, line: %d, column %d)"),
XML_ErrorString(E.GetErrorCode()), E.GetFileName(), E.GetLine(), E.GetColumn());
LOG(err);
}
}
示例2: ParseLevelConfig
void Level::ParseLevelConfig(std::wstring fileName)
{
XMLParser* parser = new XMLParser();
parser->LoadFile(fileName);
while (parser->Parse(L"Level"))
{
// Skip the tag if its not an opening tag.
if (parser->GetTagType() != XMLParser::OPENING)
{
continue;
}
// Read the tag if its an opening tag
std::wstring tagName = parser->GetTagName();
std::wstring tagContent = parser->GetTagContent();
if (tagName.compare(L"ID") == 0)
{
m_LevelName = tagContent;
}
else if (tagName.compare(L"StandardConfig") == 0)
{
m_StandardConfigPath = tagContent;
}
else if (tagName.compare(L"SVG") == 0)
{
m_SVGPath = tagContent;
m_ActorLayoutPtr->AddSVGShape(String(m_SVGPath.c_str()));
}
else if (tagName.compare(L"Visuals") == 0)
{
m_VisualsPath = tagContent;
m_ImgVisualsPtr = new Bitmap(String(m_VisualsPath.c_str()));
// Add a polygonal shape around the level
std::vector<DOUBLE2> levelBoundaries(4);
levelBoundaries[0] = DOUBLE2(0, 0);
levelBoundaries[1] = DOUBLE2(0, m_ImgVisualsPtr->GetHeight());
levelBoundaries[2] = DOUBLE2(m_ImgVisualsPtr->GetWidth(), m_ImgVisualsPtr->GetHeight());
levelBoundaries[3] = DOUBLE2(m_ImgVisualsPtr->GetWidth(), 0);
m_ActorLayoutPtr->AddChainShape(levelBoundaries, true);
}
else if (tagName.compare(L"Shadows") == 0)
{
m_ShadowsPath = tagContent;
m_ImgShadowsPtr = new Bitmap(String(m_ShadowsPath.c_str()));
}
else if (tagName.compare(L"Navigation") == 0)
{
// Loads an image that is converted and used a navigation grid
m_NavigationPath = tagContent;
Bitmap* navigationImg = new Bitmap(String(m_NavigationPath.c_str()));
// Create a navigation grid for the pathfinding algorithm.
std::vector<std::vector<COLOR>> rawPixelData = navigationImg->GetRawPixelData();
m_NavigationGrid = std::vector<std::vector<bool>>(navigationImg->GetHeight(), std::vector<bool>(navigationImg->GetWidth()));
for (int i = 0; i < navigationImg->GetHeight(); ++i)
{
for (int j = 0; j < navigationImg->GetWidth(); ++j)
{
COLOR color = rawPixelData[i][j];
int avarageValue = (color.red + color.green + color.blue) / 3;
if (avarageValue < 128)
{
m_NavigationGrid[i][j] = false;
}
else
{
m_NavigationGrid[i][j] = true;
}
}
rawPixelData[i].clear();
}
rawPixelData.clear();
delete navigationImg;
}
else if (tagName.compare(L"Objective") == 0)
{
m_ObjectivePath = tagContent;
m_ImgIntroPtr = new Bitmap(String(m_ObjectivePath.c_str()));
}
else if (tagName.compare(L"AudioMainMusic") == 0)
{
m_AudioMainMusic = tagContent;
}
else if (tagName.compare(L"AudioCompletedMusic") == 0)
{
m_AudioCompletedMusic = tagContent;
}
else if (tagName.compare(L"AudioCompletedEffect") == 0)
{
m_AudioCompletedEffect = tagContent;
}
else if (tagName.compare(L"EndZone") == 0)
{
//.........这里部分代码省略.........