本文整理汇总了C++中CL_DomElement::get_next_sibling_element方法的典型用法代码示例。如果您正苦于以下问题:C++ CL_DomElement::get_next_sibling_element方法的具体用法?C++ CL_DomElement::get_next_sibling_element怎么用?C++ CL_DomElement::get_next_sibling_element使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CL_DomElement
的用法示例。
在下文中一共展示了CL_DomElement::get_next_sibling_element方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: cloneElement
//рекурсивное клонирование XML-элемента
CL_DomElement cloneElement(CL_DomElement &element, CL_DomDocument &doc)
{
//создаем элемент-клон
CL_DomElement clone(doc, element.get_tag_name());
//копируем атрибуты
CL_DomNamedNodeMap attributes = element.get_attributes();
unsigned long length = attributes.get_length();
for (unsigned long i = 0; i < length; ++i)
{
CL_DomNode attr = attributes.item(i);
clone.set_attribute(attr.get_node_name(), attr.get_node_value());
}
//рекурсивно копируем дочерние элементы
for (CL_DomElement child = element.get_first_child_element(); !child.is_null(); child = child.get_next_sibling_element())
clone.append_child(cloneElement(child, doc));
//возвращаем клонированный элемент
return clone;
}
示例2: main
//.........这里部分代码省略.........
for(S_Sprite::T_Images::iterator iter_images = iter_sprites->mImages.begin(); iter_images != iter_sprites->mImages.end(); ++iter_images)
{
//элемент frame
CL_DomElement frameElement(resourceXML, "frame");
frameElement.set_attribute_int("nr", iter_images - iter_sprites->mImages.begin());
if (iter_images->mDelay != 0)
frameElement.set_attribute_int("speed", iter_images->mDelay);
frameElement.set_attribute_int("x", iter_images->mOffset.x);
frameElement.set_attribute_int("y", iter_images->mOffset.y);
spriteElement.append_child(frameElement);
}
}
//подключение всех файлов с дополнительными ресурсами
directoryScanner.scan(workDirectoryName, "*.xml");
while (directoryScanner.next())
{
//проверка валидности файла
if (directoryScanner.is_directory() || directoryScanner.get_name() == RESOURCES_FILE_NAME)
continue;
//открытие ресурсного XML файла
CL_Console::write_line("include xml file: " + directoryScanner.get_pathname());
CL_File file(directoryScanner.get_pathname());
CL_DomDocument doc(file);
CL_DomElement root = doc.get_document_element();
if (root.get_tag_name() != "resources")
{
CL_Console::write_line("Root name can't be: %1", root.get_tag_name());
return PrintError("");
}
//добавление всех ресурсов в текущий документ
for (CL_DomElement element = root.get_first_child_element(); !element.is_null(); element = element.get_next_sibling_element())
resourcesElement.append_child(cloneElement(element, resourceXML));
}
//сохранение в файл XML структуры
resourceXML.save(fileResourceXML);
//закрытие файла
fileResourceXML.close();
//сохранение координат спрайтов и инициализации/деинициализации в lua скрипте
//формирование имени файла
//CL_String luaFileName = CL_PathHelp::make_absolute(workDirectoryName, locationName + ".lua");
CL_String luaFileName = CL_PathHelp::make_absolute(workDirectoryName, LUA_SCRIPT_NAME);
CL_File luaFile;
is_opened = luaFile.open(luaFileName, CL_File::create_always, CL_File::access_write);
if( !is_opened )
return PrintError( CL_String("Can't open file: ") + luaFileName);
luaFile.write_string_text( cl_format("function %1_createSprites()", locationName) );
//запись в XML файл ресурсов результирующих прямоугольников
for(T_Sprites::iterator iter_sprites = sprites.begin(); iter_sprites != sprites.end(); ++iter_sprites)
{
CL_String currentResourceName = iter_sprites->mName;
int x = iter_sprites->mPos.x;
int y = iter_sprites->mPos.y;
luaFile.write_string_text( cl_format("\t%1 = Sprite(\"%2\", %3, %4)", currentResourceName, currentResourceName, x, y) );
}
luaFile.write_string_text( cl_format("end") );
luaFile.write_string_text(CL_String(""));
示例3: Exception
SpriteResource::SpriteResource(CL_Resource &resource)
: mResource(resource)
{
GAME_ASSERT(mResource.get_type() == "sprite");
std::string basePath = mResource.get_manager().get_directory(mResource).get_file_system().get_path();
for (CL_DomElement element = mResource.get_element().get_first_child_element(); !element.is_null(); element = element.get_next_sibling_element())
if (element.get_tag_name() == "image")
{
std::string fileName = element.get_attribute("file");
if (fileName.empty())
throw Exception("Sprite '" + mResource.get_name() + "' has empty or missing 'file' attribute");
mFrames.insert(std::make_pair(basePath + fileName, Frame(fileName)));
}
if (mFrames.empty())
throw Exception("Sprite '" + mResource.get_name() + "' has no frames");
}