本文整理汇总了C++中pugi::xpath_node::attribute方法的典型用法代码示例。如果您正苦于以下问题:C++ xpath_node::attribute方法的具体用法?C++ xpath_node::attribute怎么用?C++ xpath_node::attribute使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pugi::xpath_node
的用法示例。
在下文中一共展示了xpath_node::attribute方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getAttribute
std::string Engine::getAttribute( const pugi::xml_document& cfg,
const std::string xpath ) {
const pugi::xpath_node xpnode = cfg.select_single_node(xpath.c_str()) ;
DLOG(INFO) << xpath << " " << xpnode.attribute().name() << " "
<< xpnode.attribute().value() << std::endl ;
std::string ret(xpnode.attribute().value());
if( ret.size( ) == 0 ) {
throw StatMissingException( "xpath [" + xpath + "] returns no value." ) ;
}
return ret ;
}
示例2: PatchRemove
void XMLFile::PatchRemove(const pugi::xpath_node& original) const
{
// If no attribute but node then its a node, otherwise its an attribute or null
if (!original.attribute() && original.node())
{
pugi::xml_node parent = original.parent();
parent.remove_child(original.node());
}
else if (original.attribute())
{
pugi::xml_node parent = original.parent();
parent.remove_attribute(original.attribute());
}
}
示例3: PatchReplace
void XMLFile::PatchReplace(const pugi::xml_node& patch, pugi::xpath_node& original) const
{
// If no attribute but node then its a node, otherwise its an attribute or null
if (!original.attribute() && original.node())
{
pugi::xml_node parent = original.node().parent();
parent.insert_copy_before(patch.first_child(), original.node());
parent.remove_child(original.node());
}
else if (original.attribute())
{
original.attribute().set_value(patch.child_value());
}
}
示例4: PatchAdd
void XMLFile::PatchAdd(const pugi::xml_node& patch, pugi::xpath_node& original) const
{
// If not a node, log an error
if (original.attribute())
{
URHO3D_LOGERRORF("XML Patch failed calling Add due to not selecting a node, %s attribute was selected.",
original.attribute().name());
return;
}
// If no type add node, if contains '@' treat as attribute
pugi::xml_attribute type = patch.attribute("type");
if (!type || strlen(type.value()) <= 0)
AddNode(patch, original);
else if (type.value()[0] == '@')
AddAttribute(patch, original);
}