51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[原创] 用自定义参数替换掉XML中某一节点内容的方法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-6-2 14:24:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
脚本中请求如下:
soap_request("StepName=SQLSelect_176",
  "URL=http://10.0.16.245/SqlEngineService.asmx",
  "SOAPEnvelope=<?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"no\"?>"
  "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/"
  "envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi="
  "\"http://www.w3.org/2001/XMLSchema-instance\">\r\n<soap:Body>\r\n"
  "<SQLSelect xmlns=\"http://tempuri.org/\">\r\n<in0>NG0001</in0>\r\n"
  "<in1>LZWnY0oUgGtFMo2pA3pA4pA5pA</in1>\r\n"
  "<in2>true</in2>\r\n"
  "</SQLSelect>\r\n</soap:Body>\r\n</soap"
  ":Envelope>",
  "Snapshot=d74.inf",
  "ResponseParam=response",
  LAST);
由于<in1>节点是加密后的串,所以需要通过一个参数调用DLL加密后,然后再传
现在的做法是:
str1= "SOAPEnvelope=<?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"no\"?>"
  "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/"
  "envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi="
  "\"http://www.w3.org/2001/XMLSchema-instance\">\r\n<soap:Body>\r\n"
  "<SQLSelect xmlns=\"http://tempuri.org/\">\r\n<in0>NG0001</in0>\r\n"
  "<in1>"
str2=</in1>\r\n"
  "<in2>true</in2>\r\n"
  "</SQLSelect>\r\n</soap:Body>\r\n</soap"
  ":Envelope>"
然后 str=str1+encode+str2
soap_request("StepName=SQLSelect_176",
  "URL=http://10.0.16.245/SqlEngineService.asmx",
  str,
  "Snapshot=d74.inf",
  "ResponseParam=response",
  LAST);

觉得这个办法太笨拙,是否有更简便的办法,直接用encode替换掉请求中<in1></in1>之间的内容。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-6-2 17:40:09 | 只看该作者
如果函数不支持参数化,那么这个做法是最好的了,当然你可以再转化一下,把你的str里面的哪个内容再参数化
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-6-3 09:05:36 | 只看该作者
谢谢云层大侠
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-23 05:30 , Processed in 0.073845 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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