本文整理汇总了C++中OTMLNodePtr::rawValue方法的典型用法代码示例。如果您正苦于以下问题:C++ OTMLNodePtr::rawValue方法的具体用法?C++ OTMLNodePtr::rawValue怎么用?C++ OTMLNodePtr::rawValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OTMLNodePtr
的用法示例。
在下文中一共展示了OTMLNodePtr::rawValue方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: copy
void OTMLNode::copy(const OTMLNodePtr& node)
{
setTag(node->tag());
setValue(node->rawValue());
setUnique(node->isUnique());
setNull(node->isNull());
setSource(node->source());
clear();
for(const OTMLNodePtr& child : node->m_children)
addChild(child->clone());
}
示例2: push_otml_subnode_luavalue
// otml nodes
void push_otml_subnode_luavalue(const OTMLNodePtr& node)
{
if(node->hasValue()) {
union {
bool b;
double d;
long l;
};
std::string value = node->rawValue();
if(stdext::cast(value, b))
g_lua.pushBoolean(b);
else if(stdext::cast(value, l))
g_lua.pushInteger(l);
else if(stdext::cast(value, d))
g_lua.pushNumber(d);
else
g_lua.pushString(value);
} else if(node->hasChildren()) {
g_lua.newTable();
bool pushedChild = false;
int currentIndex = 1;
for(const OTMLNodePtr& cnode : node->children()) {
push_otml_subnode_luavalue(cnode);
if(!g_lua.isNil()) {
if(cnode->isUnique()) {
g_lua.pushString(cnode->tag());
g_lua.insert(-2);
g_lua.rawSet();
} else
g_lua.rawSeti(currentIndex++);
pushedChild = true;
} else
g_lua.pop();
}
if(!pushedChild) {
g_lua.pop();
g_lua.pushNil();
}
} else
g_lua.pushNil();
}