本文整理汇总了C++中CL_DomElement::is_null方法的典型用法代码示例。如果您正苦于以下问题:C++ CL_DomElement::is_null方法的具体用法?C++ CL_DomElement::is_null怎么用?C++ CL_DomElement::is_null使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CL_DomElement
的用法示例。
在下文中一共展示了CL_DomElement::is_null方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: set_child_string_ns
void CL_DomElement::set_child_string_ns(const CL_DomString &namespace_uri, const CL_DomString &qualified_name, const CL_DomString &value)
{
CL_DomString local_name;
CL_DomString::size_type pos = qualified_name.find(L':');
if (pos != CL_DomString::npos)
local_name = qualified_name.substr(pos+1);
else
local_name = qualified_name;
CL_DomElement element = named_item_ns(namespace_uri, local_name).to_element();
if (element.is_null())
{
element = get_owner_document().create_element_ns(namespace_uri, qualified_name);
append_child(element);
}
CL_DomText dom_text = get_owner_document().create_text_node(value);
if (element.get_first_child().is_text())
{
CL_DomNode temp_domnode = element.get_first_child();
replace_child(dom_text, temp_domnode);
}
else
{
element.append_child(dom_text);
}
}
示例2: get_child_string_ns
CL_DomString CL_DomElement::get_child_string_ns(const CL_DomString &namespace_uri, const CL_DomString &local_name, const CL_DomString &default_value) const
{
CL_DomElement element = named_item_ns(namespace_uri, local_name).to_element();
if (!element.is_null() && element.get_first_child().is_text())
return element.get_first_child().to_text().get_node_value();
else
return default_value;
}
示例3: set_child_string
void CL_DomElement::set_child_string(const CL_DomString &name, const CL_DomString &value)
{
CL_DomElement element = named_item(name).to_element();
if (element.is_null())
{
element = get_owner_document().create_element(name);
append_child(element);
}
while (!element.get_first_child().is_null())
{
CL_DomNode my_child = element.get_first_child();
element.remove_child(my_child);
}
CL_DomText dom_text = get_owner_document().create_text_node(value);
element.append_child(dom_text);
}
示例4: 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");
}
示例5: find_prefix
CL_DomString CL_DomNode::find_prefix(const CL_DomString &namespace_uri) const
{
CL_DomElement cur = to_element();
while (!cur.is_null())
{
CL_DomNamedNodeMap attributes = cur.get_attributes();
int size = attributes.get_length();
for (int index = 0; index < size; index++)
{
CL_DomNode attribute = attributes.item(index);
if (attribute.get_prefix() == "xmlns" &&
attribute.get_node_value() == namespace_uri)
{
return attribute.get_local_name();
}
}
cur = cur.get_parent_node().to_element();
}
return CL_DomString();
}
示例6: 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;
}
示例7: main
int ConsoleProgram::main(const std::vector<CL_String> &args)
{
// Setup clanCore:
CL_SetupCore setup_core;
// Initialize the ClanLib display component
CL_SetupDisplay setup_display;
// Create a console Window if one does not exist:
CL_ConsoleWindow console_window("Console", 80, 600);
try
{
//получение параметра запуска
for (std::vector<CL_String>::const_iterator iter_args = args.begin(); iter_args != args.end(); ++iter_args)
CL_Console::write_line( *iter_args );
//получение имени директории для сохранения
CL_String workDirectoryName;
if (args.size() > 1)
{
//полное имя рабочей директории
workDirectoryName = args[1];
//конвертирование из CP-1251 в UTF-8 имени рабочей директории
workDirectoryName = decode(workDirectoryName);
}
else
{
//получение полного пути к текущему каталогу
workDirectoryName = CL_Directory::get_current();
}
CL_Console::write_line("workDirectoryName: %1", workDirectoryName);
//получение имени последней директории
CL_String locationName = CL_PathHelp::remove_trailing_slash(workDirectoryName);
locationName = CL_PathHelp::get_filename(locationName);
CL_Console::write_line("locationName: %1", locationName);
CL_String tempDir = CL_PathHelp::add_trailing_slash(workDirectoryName) + "temp\\";
CL_DirectoryScanner directoryScanner;
directoryScanner.scan(tempDir, "*.export");
while (directoryScanner.next())
{
//имя обрабатываемого файла
CL_String fileName;
if (directoryScanner.is_directory())
continue;
//получение полного имени файла экспорта
fileName = directoryScanner.get_pathname();
//конвертирование из CP-1251 в UTF-8
fileName = decode(fileName);
CL_Console::write_line("find: %1", fileName);
//открытие XML файла
CL_File fileXML;
bool is_opened = fileXML.open(fileName);
if( !is_opened )
return PrintError( CL_String("Can't open file: ") + fileName );
//Создание объекта DOM парсера
CL_DomDocument document(fileXML);
//получение root узла
CL_DomElement root = document.get_document_element();
if( root.get_local_name() != "resources")
{
CL_Console::write_line("Root name can't be: %1", root.get_local_name().c_str());
return PrintError("");
}
//цикл по потомкам "resources"
for (CL_DomNode cur = root.get_first_child(); !cur.is_null(); cur = cur.get_next_sibling())
{
//загрузка только спрайтов
if (cur.get_node_name() != "sprite")
continue;
CL_DomElement element = cur.to_element();
//проверка на обязательные параметры
if (!element.has_attribute("name"))
return PrintError("Error: can't find parametr \"name\"");
CL_DomString name = element.get_attribute("name");
int x = element.get_attribute_int("x");
int y = element.get_attribute_int("y");
//добавление спрайта
sprites.push_back( S_Sprite(name, CL_Vec2i(x, y) ) );
//цикл по "image" (формирование списка имен файлов)
for (CL_DomNode cur_image = cur.get_first_child(); !cur_image.is_null(); cur_image = cur_image.get_next_sibling())
{
//загрузка только image
if (cur_image.get_node_name() != "image")
continue;
CL_DomElement element_image = cur_image.to_element();
CL_DomString file = element_image.get_attribute("file");
//конвертирование из CP-1251 в UTF-8 имени файла изображения
//.........这里部分代码省略.........