本文整理汇总了C++中pugi::xml_document::root方法的典型用法代码示例。如果您正苦于以下问题:C++ xml_document::root方法的具体用法?C++ xml_document::root怎么用?C++ xml_document::root使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pugi::xml_document
的用法示例。
在下文中一共展示了xml_document::root方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: idoc_count_element
/// TODO
/// Note you must specify the input IDoc to use by first calling idoc_select_input_file
/// @param TODO
/// @return the number of occurrances of the specified element in the input IDoc
IDOCREPLAYDLL_API int idoc_count_element(const LPCSTR elementName)
{
if (elementName == NULL)
{
lr_error_message("[%s] Element name cannot be NULL.", __FUNCTION__);
return 0;
}
if (!ensure_valid_license())
{
return 0;
}
if (g_idocParamInputFilePath.empty())
{
lr_error_message("[%s] Input file is not selected. (Call idoc_select_input_file first.)", __FUNCTION__);
return 0;
}
int result = count_element(g_idocParamInputFile.root(), std::string(elementName));
return result;
}
示例2: idoc_eval_string
/// @brief Replaces any IDoc parameters with a the specified value from the input IDoc. IDoc
/// parameters should be in the format {IDoc:SegmentName:FieldName}
/// Note you must specify the input IDoc to use by first calling idoc_select_input_file
/// @param a new string with the IDoc parameters replaced with their values
/// @return a new string with the IDoc parameters replaced
IDOCREPLAYDLL_API LPCSTR idoc_eval_string(const LPCSTR parameterizedString)
{
if (!ensure_valid_license())
{
return parameterizedString;
}
if (parameterizedString == NULL)
{
lr_error_message("Parameterized string cannot be empty.");
return parameterizedString;
}
// TODO: move this check so that it only throws an error when parameterizedString contains something that looks like an IDoc parameter (i.e. {IDoc:xxx:yyy}
// We don't want an error to be raised when idoc_create() is called with standard LoadRunner parameters.
if (g_idocParamInputFilePath.empty())
{
// lr_error_message("Input file is not selected. (Call idoc_select_input_file first.)");
return parameterizedString;
}
g_allocatedStrings.push_back(std::string());
string& result = g_allocatedStrings.back();
const char* currentString = parameterizedString;
cmatch matchResults;
while (regex_search(currentString, matchResults, g_parameterRegex) && matchResults.size() == 3)
{
const cmatch::difference_type offset = matchResults.position();
if (offset > 0)
{
result.append(currentString, offset);
currentString += offset;
}
const sub_match<const char*> entireMatch = matchResults[0];
const sub_match<const char*> segmentMatch = matchResults[1];
const sub_match<const char*> fieldMatch = matchResults[2];
const string segment(segmentMatch.first, segmentMatch.length());
const string field(fieldMatch.first, fieldMatch.length());
const xml_node segmentNode = get_node_value(g_idocParamInputFile.root(), segment);
const xml_node fieldNode = get_node_value(segmentNode, field);
if (segmentNode.empty() || fieldNode.empty())
{
result.append(currentString, entireMatch.length());
currentString += entireMatch.length();
if (is_param_log_enabled())
{
lr_output_message(
"Warning: [IDoc] Unable to find IDoc parameter '%s:%s'.",
segment.c_str(),
field.c_str());
}
continue;
}
const char_t* value = fieldNode.text().as_string();
result.append(value);
if (is_param_log_enabled())
{
lr_output_message(
"[IDoc] Parameter substitution: '%s:%s' => '%s'.",
segment.c_str(),
field.c_str(),
value);
}
currentString += entireMatch.length();
}
result.append(currentString);
return result.c_str();
}