51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3009|回复: 2
打印 上一主题 下一主题

[原创] lr_xml_set_values函数取值问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-4-6 11:51:41 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
基本信息:lr版本:9.5
          协议:http/html
Action()
{
    #include "as_web.h"
char *xmlt ="";
char *xml_input =
"<acme_org>"
    "<employee>John</employee>"
    "<cubicle>227</cubicle>"
    "<app>227</app>"
    "<test>227</test>"
"</acme_org>";
int find_cnt;
    //int OutputParam;
   
    lr_save_string(xml_input, "XML_Input_Param");
find_cnt = lr_xml_find("XML={XML_Input_Param}",
  "Value=John",
  "Query=/acme_org/employee",
  LAST );

    if (find_cnt >0)
        {
    lr_xml_insert("XML={XML_Input_Param}", "ResultParam=Result",
                  "XmlFragment=<extension>2145</extension>",
                  "Query=/acme_org/employee",
                  "Position=child", LAST );
    lr_output_message(lr_eval_string("String after insertion: {Result}"));
         }
   lr_save_string("1111", "ExtensionParam_1");
   lr_save_string("2222", "ExtensionParam_2");
    lr_xml_set_values("XML={XML_Input_Param}",
       "Query=//test",
                      "ResultParam=NewXmlParam",
                      "ValueParam=ExtensionParam",
                      "SelectAll=yes",
               
                       LAST );
lr_output_message(lr_eval_string("String after insertion: {NewXmlParam}"));

lr_save_string("{NewXmlParam}","xmlt");
   lr_xml_get_values("XML={xmlt}",
              
                   "Query=//test",
                   "ValueParam=Result",
                   "SelectAll=yes",
                   "NotFound=continue",
                    LAST);
  lr_output_message(lr_eval_string("String after insertion: {Result}"));
      lr_output_message(lr_paramarr_idx("Result",1));
return 0;
}
回放信息:
Starting iteration 1.
Starting action Action.
Action.c(32): "lr_xml_find" succeeded, 1 match processed
Action.c(42): "lr_xml_insert" succeeded, 1 match processed
Action.c(50): String after insertion: <acme_org><employee>John<extension>2145</extension></employee><cubicle>227</cubicle><app>227</app><test>227</test></acme_org>
Action.c(56): "lr_xml_set_values" succeeded, 1 match processed
Action.c(67): String after insertion: <acme_org><employee>John</employee><cubicle>227</cubicle><app>227</app><test>1111</test></acme_org>
Action.c(71): Warning: "lr_xml_get_values" did not find any matches
Action.c(82): String after insertion: <acme_org><employee>John<extension>2145</extension></employee><cubicle>227</cubicle><app>227</app><test>227</test></acme_org>
Action.c(83): {Result_1}
Ending action Action.
Ending iteration 1.

疑问:1、为什么传参的时候名字是ExtensionParam、而变量赋值的时候名字是ExtensionParam_1    如果两个处的名字相同替换的内容就自动加上“_1”
        2、如果lr的修改xml文件内容的要求就是两处名称不一样,那么当有多个参数传参的时候如何处理。
        3、脚本中最后一段代码的目的是想输入test标签修改后的值。但输出的信息还是修改前的值。(此处有可能是我代码写的不对,如果有人事先了请告诉我一下)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2011-4-14 10:13:37 | 只看该作者
自己结贴
回复 支持 反对

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2011-4-6 17:14:50 | 只看该作者
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 17:05 , Processed in 0.071539 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表