51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3363|回复: 6
打印 上一主题 下一主题

[原创] <已解决>lr_xml_find 查询 ValueParam 的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-3-21 14:53:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 3396408 于 2012-3-28 16:29 编辑

  1.                 int find_cnt;
  2.         char *xml_input =
  3. "<acme_org>"
  4.     "<employee level=\"manager\">John Smith"
  5.         "<cubicle>227</cubicle>"
  6.     "</employee>"
  7. "</acme_org>";

  8.     find_cnt = lr_xml_find("XML={XML_Input_Param}",
  9.         "ValueParam=cubicle",
  10.         "Query=/acme_org/employee",
  11.         LAST );

复制代码
这样无法查询出“cubicle”这个属性,看了帮助文档,貌似应该是可以查询出这个属性值是否存在的,上述代码具体要怎么修改才可以呢?

  1. char * xml_input =
  2. "<acme_org>"
  3. " <accounts_dept>"
  4. "<employee>"
  5. " <name>John Smith</name>"
  6. "<cubicle>227</cubicle>"
  7. "<extension>2145</extension>"
  8. "</employee>"
  9. "</accounts_dept>"
  10. "<engineering_dept>"
  11. "<employee>"
  12. "<name>Sue Jones</name>"
  13. "<extension>2375</extension>"
  14. "</employee>"
  15. "</engineering_dept>"
  16. "</acme_org>";

  17. int find_cnt;

  18. lr_message(xml_input);
  19. lr_save_string(xml_input,"xml");
  20. lr_message(lr_eval_string("{xml}"));

  21. lr_save_string("2145","Xx_1");
  22. lr_save_string("2375","Xx_2");

  23. find_cnt = lr_xml_find("XML={xml}",
  24. "ValueParam=Xx", /*查找多个参数是否存在是用到的,注意参数没有{}*/
  25. "SelectAll=yes",
  26. "Query=//extension",
  27. LAST );

  28. lr_message("lr_xml_find成功次数:%d",find_cnt);
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2012-3-21 15:56:34 | 只看该作者
find_cnt = lr_xml_find("XML={XML_Input_Param}",
        "Value=227",
        "Query=/acme_org/employee/cubicle",
        LAST);
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2012-3-21 16:01:44 | 只看该作者
补充说,不是要查询227是否存在,这个可以搞定
是要查询cubicle是否存在
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2012-3-21 21:22:32 | 只看该作者
等待高人指点
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2012-3-21 22:52:43 | 只看该作者
lr_xml_find做不到你想要的效果,不过可以用lr_xml_extract实现
  1.         int find_cnt;
  2.         char *xml_input =
  3.                 "<acme_org>"
  4.                 "<employee level=\"manager\">John Smith"
  5.                 "<cubicle>227</cubicle>"
  6.                 "</employee>"
  7.                 "</acme_org>";

  8.         lr_save_string(xml_input,"XML_Input_Param");

  9.         find_cnt=lr_xml_extract("XML={XML_Input_Param}",
  10.         "XMLFragmentParam=Result",
  11.         "Query=/acme_org/employee/cubicle",
  12.                 "NotFound=Continue",
  13.         LAST );

  14.         if(find_cnt>0){
  15.                 lr_output_message("Found!");
  16.         }else{
  17.                 lr_output_message("Not Found!");
  18.         }
复制代码
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2012-3-22 09:09:32 | 只看该作者
lr_xml_extract用法搞明白了,多谢!
请教lr_xml_find 的"ValueParam"是用来查询什么呢,语法如何,能否给个简单例子说明一下?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2012-3-22 10:09:56 | 只看该作者
lr_xml_find用来查询John Smith、227、manager这样的属性值,具体使用方法看LR帮助
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-25 12:00 , Processed in 0.077462 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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