本文整理汇总了C++中CL_DomElement::named_item方法的典型用法代码示例。如果您正苦于以下问题:C++ CL_DomElement::named_item方法的具体用法?C++ CL_DomElement::named_item怎么用?C++ CL_DomElement::named_item使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CL_DomElement
的用法示例。
在下文中一共展示了CL_DomElement::named_item方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: load
void ServerConfigurationImpl::load(const CL_String &p_configFile)
{
try {
cl_log_event(LOG_DEBUG, "loading configuration from %1", p_configFile);
CL_File file(
p_configFile,
CL_File::open_existing,
CL_File::access_read
);
CL_DomDocument document(file);
CL_DomElement root = document.get_document_element();
if (root.named_item("server").is_null()) {
// no configuration at all
return;
}
CL_DomElement server = root.named_item("server").to_element();
m_level = server.select_string("level");
m_port = server.select_int("port");
if (m_level.length() == 0) {
cl_log_event(LOG_ERROR, "%1: level not set", CONFIG_FILE);
exit(1);
}
if (m_port <= 0 || m_port > 0xFFFF) {
cl_log_event(LOG_ERROR, "%1: invalid port value", CONFIG_FILE);
exit(1);
}
// // read all elements
// CL_DomNode cur = server.get_first_child();
// while (cur.is_element()) {
//
// if (cur.get_node_name() == "port") {
// m_port = CL_StringHelp::local8_to_int
// (cur.to_element().get_text()
// );
// cl_log_event(LOG_DEBUG, "Port set to %1", m_port);
// }
//
// cur = cur.get_next_sibling();
// }
} catch (CL_Exception e) {
cl_log_event(LOG_ERROR, e.message);
}
}
示例2: load_texture
void CL_Collada_Effect_Texture_Impl::load_texture(CL_DomElement &profile_element, CL_DomElement &newparam_element, CL_DomElement &sampler2d_element, std::vector<CL_Collada_Image> &library_images)
{
sid = newparam_element.get_attribute("sid");
CL_DomElement source_element = sampler2d_element.named_item("source").to_element();
if (source_element.is_null())
throw CL_Exception("source is missing");
CL_String source_name = source_element.get_text();
// Find the corresponding surface
CL_DomElement surface_element;
CL_DomNode cur_child(profile_element.get_first_child());
while (!cur_child.is_null())
{
if(cur_child.get_node_name() == "newparam")
{
CL_DomElement newparam_element = cur_child.to_element();
CL_String new_sid = newparam_element.get_attribute("sid");
if (new_sid == source_name)
{
surface_element = newparam_element.named_item("surface").to_element();
if (!surface_element.is_null())
break; // Found match
}
}
cur_child = cur_child.get_next_sibling();
}
if (surface_element.is_null())
throw CL_Exception("Cannot find the corresponding surface");
CL_DomElement init_from_element = surface_element.named_item("init_from").to_element();
if (init_from_element.is_null())
throw CL_Exception("Only init_from surfaces are supported");
CL_String image_name = init_from_element.get_text();
unsigned int size = library_images.size();
for (unsigned int cnt=0; cnt < size; cnt++)
{
if (library_images[cnt].get_id() == image_name)
{
image = library_images[cnt];
break;
}
}
if (image.is_null())
throw CL_Exception("Cannot find requested image in the image library");
}
示例3: load_material
void CL_Collada_Material_Impl::load_material(CL_DomElement &material_element, std::vector<CL_Collada_Effect> &effects)
{
id = material_element.get_attribute("id");
CL_DomElement instance_effect_element = material_element.named_item("instance_effect").to_element();
if (instance_effect_element.is_null())
throw CL_Exception("Only instance_effect materials are supported");
CL_String url = instance_effect_element.get_attribute("url");
url = url.substr(1); // Remove the initial '#' symbol
std::vector<CL_Collada_Effect>::size_type size, cnt;
size = effects.size();
for (cnt=0; cnt< size; cnt++)
{
if (effects[cnt].get_id() == url)
{
effect = effects[cnt];
break;
}
}
if (effect.is_null())
throw CL_Exception("Unable to find effect");
}
示例4: load_polylist
void CL_Collada_Triangles_Impl::load_polylist(CL_DomElement &polylist_element, bool contains_vcount, std::vector<CL_Collada_Source> &sources, CL_Collada_Vertices &vertices, std::vector<CL_Collada_Material> &library_materials)
{
name = polylist_element.get_attribute("name");
// Find material
if (polylist_element.has_attribute("material"))
{
CL_String material_name = polylist_element.get_attribute("material");
std::vector<CL_Collada_Material>::size_type size, cnt;
size = library_materials.size();
for (cnt=0; cnt< size; cnt++)
{
if (library_materials[cnt].get_id() == material_name)
{
material = library_materials[cnt];
break;
}
}
if (material.is_null())
throw CL_Exception("Unable to find material");
}
triangle_count = polylist_element.get_attribute_int("count", 0);
load_inputs(polylist_element, sources, vertices);
if (contains_vcount)
{
CL_DomElement vcount_element = polylist_element.named_item("vcount").to_element();
if (!vcount_element.is_null())
validate_vcount(vcount_element);
}
CL_DomElement primitive_element = polylist_element.named_item("p").to_element();
if (!primitive_element.is_null())
load_primitive(primitive_element);
}
示例5: loadFromFile
void Level::loadFromFile(const CL_String& p_filename)
{
assert(!m_loaded && "level is already loaded");
try {
CL_File file(p_filename, CL_File::open_existing, CL_File::access_read);
CL_DomDocument document(file);
const CL_DomElement root = document.get_document_element();
// load meta element
const CL_DomNode metaNode = root.named_item("meta");
loadMetaElement(metaNode);
// gets level's content
const CL_DomNode contentNode = root.named_item("content");
// load sand
const CL_DomNode sandNode = contentNode.named_item("sand");
loadSandElement(sandNode);
// load track
const CL_DomNode trackNode = contentNode.named_item("track");
loadTrackElement(trackNode);
// load track bounds
const CL_DomNode boundsNode = contentNode.named_item("bounds");
loadBoundsElement(boundsNode);
file.close();
m_loaded = true;
} catch (CL_Exception e) {
CL_Console::write_line(e.message);
}
}
示例6: parse_memberdef
void ReferenceFunction::parse_memberdef(CL_DomElement memberdef)
{
CL_DomElement element_name = memberdef.named_item("name").to_element();
if (element_name.is_null() || element_name.get_text() != name)
return;
CL_String type, type_formatted, definition, argsstring;
std::vector<CL_String> cur_params;
CL_DomNode cur_node;
for (cur_node = memberdef.get_first_child(); !cur_node.is_null(); cur_node = cur_node.get_next_sibling())
{
CL_DomElement cur_element = cur_node.to_element();
if (cur_element.is_null()) continue;
CL_String tag_name = cur_element.get_tag_name();
if (tag_name == "type")
{
type = cur_element.get_text();
type_formatted = ReferenceDocs::get_formatted(cur_element);
}
else if (tag_name == "definition")
{
definition = CL_StringHelp::trim(ReferenceDocs::escape_code(cur_element.get_text()));
}
else if (tag_name == "argsstring")
{
argsstring = cur_element.get_text();
}
else if (tag_name == "param")
{
CL_String param_type = ReferenceDocs::get_formatted(cur_element.named_item("type").to_element());
CL_String param_name = cur_element.named_item("declname").to_element().get_text();
CL_String param_defval = ReferenceDocs::get_formatted(cur_element.named_item("defval").to_element());
CL_String param_text = param_type + " " + param_name;
if (!param_defval.empty())
param_text += CL_String(" = ") + param_defval;
cur_params.push_back(param_text);
}
else if (tag_name == "briefdescription")
{
brief_description = ReferenceDocs::get_formatted(cur_element);
}
else if (tag_name == "detaileddescription")
{
detailed_description = ReferenceDocs::get_formatted(cur_element);
get_params_list(cur_element);
}
}
CL_String cur_declaration;
cur_declaration += cl_format("\t%1(", definition);
for (unsigned int index_params = 0; index_params < cur_params.size(); index_params++)
{
if (index_params > 0)
cur_declaration += ",";
cur_declaration += cl_format("\n\t\t%1", cur_params[index_params]);
}
cur_declaration += ");\n";
if (!declaration.empty())
declaration += "\n";
declaration += cur_declaration;
}