loadrunner Lr_类函数之 lr_xml_set_values()

设置查询找到的XML元素的值。

int lr_xml_set_values( <List of specifications> [, <List of optional specifications> ] [, LAST]);

 

参数说明:

List of specifications:对于以下所需规格列表,请使用以下字符串格式:

“Specification = value”

    XML:要查询的XML输入字符串

    ResultParam:设置新值后包含XML数据的输出参数。如果参数不存在,则创建它。

    Query:对输入字符串XML的XML查询。您可以指定元素或属性。

    选择以下选项之一:

    Value:要设置为XML元素的字符串值

or:

    ValueParam:包含要设置为XML元素的值的参数名称

List of optional specifications:对于以下可选规格列表,请使用以下字符串格式:

“Specification = value”

    SelectAll:如果为“yes”,则将处理与查询匹配的所有元素。如果“否”,则仅处理第一个匹配。默认值为“no”。请参阅多查询匹配

    NotFound:请参见继续出错

LAST:表示可选规范列表结束的标记

 

lr_xml_set_values函数查询XML输入字符串XML以查找与查询条件匹配的值,并将Value或ValueParam设置为查询匹配的元素的值。

XML输入字符串可以是包含XML数据的文字字符串。例如:

“XML = <employee> John Smith </ employee>

或者,XML字符串可以是包含XML数据的参数。例如:

“XML = {EmployeeNameParam}”

您可以将所需的输入值作为字符串(“Value = string”)或作为包含字符串(“ValueParam = {Param}”)的参数传递。

如果有多个值要替换,则使用ValueParam。将值存储在一系列参数中,名称为:

Param_1,Param_2,Param_3,...

其中Param是值“ValueParam = Param”。 lr_xml_set_values将Query的每个连续匹配设置为系列中下一个参数的值。

当名称为ValueParam或ResultParam的参数已存在时,其值将被覆盖。使用源文档编码返回ResultParam。

有关查询的信息和示例请参阅XML查询。

 

示例:lr_xml_set_values

以下示例使用lr_xml_set_values更改XML字符串中两个employee元素的电话扩展。

首先,一个简单的XML字符串存储在参数XML_Input_Param中。由于我们需要匹配和替换两个值,我们准备两个新参数ExtensionParam_1和ExtensionParam_2,并将它们设置为两个新的电话分机:1111和2222。

lr_xml_set_values通过传递“ValueName = ExtensionParam”来调用,它接收ExtensionParam_1和ExtensionParam_2的值。两个雇员的当前扩展被替换为这些参数的值1111和2222.然后评估OutputParam的值,证明新的电话分机确实被替换。

有关使用lr_xml_set_values的更多示例,请参阅在XML查询的示例脚本中设置属性值。

#include“as_web.h”

char * xml_input =

“<acme_org>”

    “<accounts_dept>”

        “<employee>”

            “<name> John Smith </ name>”

            “<cubicle> 227 </ cubicle>”

            “<extension> 2145 </ extension>”

        “</ employee>”

    “</ accounts_dept>”

    “<engineering_dept>”

        “<employee>”

            “<name> Sue Jones </ name>”

            “<extension> 2375 </ extension>”

        “</ employee>”

    “</ engineering_dept>”

“</ acme_org>”;

 

Action(){

    int i,NumOfValues;

    char buf [64];

    lr_save_string(xml_input,“XML_Input_Param”); //将输入保存为参数

    lr_save_string(“1111”,“ExtensionParam_1”);

    lr_save_string(“2222”,“ExtensionParam_2”);

    lr_xml_set_values(“XML = {XML_Input_Param}”,

        “ResultParam = NewXmlParam”,

        “ValueParam = ExtensionParam”

        “SelectAll = yes”,

        “Query = // extension”,

        LAST);

 

    NumOfValues = lr_xml_get_values(“XML = {NewXmlParam}”,

        “ValueParam = OutputParam”,

        “Query = // extension”,

        “SelectAll = yes”,LAST);

    for(i = 0; i <NumOfValues; i ++){/ *打印MultiParam的多个值* /

        sprintf(buf,“Retrieved value%d:{OutputParam_%d}”,i + 1,i + 1);

        lr_output_message(lr_eval_string(buf));

    }}

    return 0;

}}

输出:

Action.c(40):检索值1:1111

Action.c(40):检索值2:2222

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值