本文整理汇总了C++中XmlNode::setValue方法的典型用法代码示例。如果您正苦于以下问题:C++ XmlNode::setValue方法的具体用法?C++ XmlNode::setValue怎么用?C++ XmlNode::setValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XmlNode
的用法示例。
在下文中一共展示了XmlNode::setValue方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: appendModuleParam
void plainconf::appendModuleParam(XmlNode *pModuleNode, const char *param)
{
XmlNode *pParamNode = pModuleNode->getChild("param");
if (pParamNode == NULL)
{
pParamNode = new XmlNode;
const char *attr = NULL;
pParamNode->init("param", &attr);
pParamNode->setValue(param, strlen(param));
pModuleNode->addChild(pParamNode->getName(), pParamNode);
}
else
{
AutoStr2 totalValue = pParamNode->getValue();
totalValue.append("\n", 1);
totalValue.append(param, strlen(param));
pParamNode->setValue(totalValue.c_str(), totalValue.len());
}
logToMem(LOG_LEVEL_INFO, "[%s:%s] module [%s] add param [%s]",
pModuleNode->getParent()->getName(),
((pModuleNode->getParent()->getValue()) ?
pModuleNode->getParent()->getValue() : ""),
pModuleNode->getValue(), param);
}
示例2: addModuleWithParam
void plainconf::addModuleWithParam(XmlNode *pCurNode,
const char *moduleName, const char *param)
{
XmlNode *pModuleNode = NULL;
XmlNodeList::const_iterator iter;
const XmlNodeList *pModuleList = pCurNode->getChildren("module");
if (pModuleList)
{
for (iter = pModuleList->begin(); iter != pModuleList->end(); ++iter)
{
if (strcasecmp((*iter)->getChildValue("name", 1), moduleName) == 0)
{
pModuleNode = (*iter);
break;
}
}
}
if (!pModuleNode)
{
pModuleNode = new XmlNode;
//XmlNode *pParamNode = new XmlNode;
const char *attr = NULL;
pModuleNode->init("module", &attr);
pModuleNode->setValue(moduleName, strlen(moduleName));
pCurNode->addChild(pModuleNode->getName(), pModuleNode);
logToMem(LOG_LEVEL_INFO, "[%s:%s]addModuleWithParam ADD module %s",
pCurNode->getName(), pCurNode->getValue(), moduleName);
}
appendModuleParam(pModuleNode, param);
}
示例3:
void XmlParserImp::onRawData( const String& data )
{
assert( !nodeStack.empty() );
if (!nodeStack.empty()) {
XmlNode *node = nodeStack.back();
node->setValue( data );
}
}
示例4: saveUnknownItems
void plainconf::saveUnknownItems(const char *fileName, int lineNumber,
XmlNode *pCurNode, const char *name, const char *value)
{
//if not inside a "module" and without a "::", treated as error
if (strcasecmp(pCurNode->getName(), "module") != 0 &&
strstr(name, "::") == NULL)
{
logToMem(LOG_LEVEL_ERR, "Not support [%s %s] in file %s:%d", name, value,
fileName, lineNumber);
return ;
}
char newvalue[4096] = {0};
XmlNode *pParamNode = new XmlNode;
const char *attr = NULL;
pParamNode->init(UNKNOWN_KEYWORDS, &attr);
strcpy(newvalue, name);
strcat(newvalue, " ");
strcat(newvalue, value);
pParamNode->setValue(newvalue, strlen(newvalue));
pCurNode->addChild(pParamNode->getName(), pParamNode);
}
示例5: parseLine
void plainconf::parseLine(const char *fileName, int lineNumber,
const char *sLine)
{
const int MAX_NAME_LENGTH = 4096;
char name[MAX_NAME_LENGTH] = {0};
char value[MAX_NAME_LENGTH] = {0};
const char *attr = NULL;
XmlNode *pNode = NULL;
XmlNode *pCurNode = (XmlNode *)gModuleList.back();
const char *p = sLine;
const char *pEnd = sLine + strlen(sLine);
bool bNameSet = false;
for (; p < pEnd; ++p)
{
//"{" is a beginning of a block only if it is the last char of a line
if (*p == '{' && pEnd - p == 1)
{
if (strlen(name) > 0)
{
const char *pRealname = getRealName(name);
if (pRealname)
{
pNode = new XmlNode;
pNode->init(pRealname, &attr);
//Remove space in the end of the value such as "module cache {", value will be "cache"
removeSpace(value, 1);
if (strlen(value) > 0)
pNode->setValue(value, strlen(value));
pCurNode->addChild(pNode->getName(), pNode);
gModuleList.push_back(pNode);
pCurNode = pNode;
clearNameAndValue(name, value);
break;
}
else
{
logToMem(LOG_LEVEL_ERR,
"parseline find block name [%s] is NOT keyword in %s:%d", name, fileName,
lineNumber);
break;
}
}
else
{
logToMem(LOG_LEVEL_ERR,
"parseline found '{' without a block name in %s:%d", fileName, lineNumber);
break;
}
}
else if (*p == '}' && p == sLine)
{
if (gModuleList.size() > 1)
{
gModuleList.pop_back();
clearNameAndValue(name, value);
if (*(p + 1))
{
++p;
trimWhiteSpace(&p);
parseLine(fileName, lineNumber, p);
break;
}
}
else
{
logToMem(LOG_LEVEL_ERR, "parseline found more '}' in %s:%d", fileName,
lineNumber);
clearNameAndValue(name, value);
break;
}
}
else if ((*p == ' ' || *p == '\t') && value[0] == 0)
{
bNameSet = true;
continue;
}
else
{
if (!bNameSet)
strcatchr(name, *p, MAX_NAME_LENGTH);
else
strcatchr(value, *p, MAX_NAME_LENGTH);
}
}
if (name[0] != 0)
{
const char *pRealname = getRealName(name);
if (pRealname)
{
//.........这里部分代码省略.........