51Testing软件测试论坛

标题: <已解决>lr_xml_find 查询 ValueParam 的问题 [打印本页]

作者: 3396408    时间: 2012-3-21 14:53
标题: <已解决>lr_xml_find 查询 ValueParam 的问题
本帖最后由 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);
复制代码

作者: lovywu    时间: 2012-3-21 15:56
find_cnt = lr_xml_find("XML={XML_Input_Param}",
        "Value=227",
        "Query=/acme_org/employee/cubicle",
        LAST);
作者: 3396408    时间: 2012-3-21 16:01
补充说,不是要查询227是否存在,这个可以搞定
是要查询cubicle是否存在
作者: 3396408    时间: 2012-3-21 21:22
等待高人指点
作者: mimmy    时间: 2012-3-21 22:52
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.         }
复制代码

作者: 3396408    时间: 2012-3-22 09:09
lr_xml_extract用法搞明白了,多谢!
请教lr_xml_find 的"ValueParam"是用来查询什么呢,语法如何,能否给个简单例子说明一下?
作者: mimmy    时间: 2012-3-22 10:09
lr_xml_find用来查询John Smith、227、manager这样的属性值,具体使用方法看LR帮助




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2