• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Kevin Cheng's Yard
电脑是我的老婆,编程是我的灵魂,代码是我的语言,按键是我在歌唱。
https://github.com/surfsky/
博客园    首页    新随笔    联系   管理    订阅  订阅

将json对象转化为xml、soap字符串

<script>
// 将json对象转化为xml
function toXml(obj){
    var xml = "";
    for(var k in obj){
        var v = obj[k];
        if(typeof(v)!="object"){
            xml += "<" + k + ">" + v + "</" + k + ">";
        }else{
            xml += "<" + k + ">";
            xml += toXml(v);
            xml += "</" + k + ">";
        }
    }
    return xml;
}

// 构建soap调用字符串
// name : 方法名称
// args : 附属json参数
// ns   : 方法的namespace
function toSoap(name, args, ns)
{
  var msg = '';
  msg += '<v:Envelope\r\n';
  msg += '  xmlns:i="http://www.w3.org/2001/XMLSchema-instance%22/r/n';
  msg += '  xmlns:d="http://www.w3.org/2001/XMLSchema%22/r/n';
  msg += '  xmlns:c="http://schemas.xmlsoap.org/soap/encoding/%22/r/n';
  msg += '  xmlns:v="http://schemas.xmlsoap.org/soap/envelope/%22/r/n';
  msg += '  >\r\n';
  msg += '  <v:Header/>\r\n';
  msg += '  <v:Body>\r\n';
  msg += '    <' + name + ' xmlns="' + ns + '" id="o0" c:root="1">\r\n';
  msg += '      ' + toXml(args) + "\r\n";
  msg += '    </' + name + '>\r\n';
  msg += '  </v:Body>\r\n';
  msg += '</v:Envelope>\r\n';
  return msg;
}

//var o = {a:1, b:"xx", c:{c1:3, c2:"ww"}};
//alert(toXml(o));
var o = {
  zi_tid:'XQ9Fasfi+7wBswdfgsszCw==',
  zi_isre:1,
  key:null,
  row:10,
  skip:0,
  code:'iJRgfsfsjQyO4'
  };
var soap = toSoap('ListInfo', o, 'AuthorityServicewsdl');
alert(soap);
</script>

 

ps. 这段脚本在调用php的webservice时会用到(用标准的soap协议),aspnet的webservice既实现了标准的soap也实现了普通的get/post方式,调用简单很多。

转载请注明出处:http://surfsky.cnblogs.com 

posted @ 2012-10-12 18:00  surfsky  阅读(2941)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3