惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
量子位
腾讯CDC
A
About on SuperTechFans
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
T
Tailwind CSS Blog
V
V2EX
B
Blog RSS Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
GbyAI
GbyAI
Recent Announcements
Recent Announcements
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
罗磊的独立博客
宝玉的分享
宝玉的分享
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
V
Visual Studio Blog
D
DataBreaches.Net
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
有赞技术团队
有赞技术团队

博客园 - voiow

C#资源汇总 弹出窗口在屏幕中央 Server.CreateObject 的调用失败 - voiow - 博客园 SQL Server 2005表分区的具体实现方法 Server 2005之Integration Service简单实例 获取SQL Server数据库里表容量大小 自定义用户控件属性 - voiow - 博客园 使用asp下的adodb.stream 下载文件而不是打开 Dynamic XML from SQL Server - voiow 将数据库存储的附件写到文件夹上面 - voiow - 博客园 如何用javascript拷贝当前页中被选中的文字? - voiow - 博客园 BizTalk使用发送端口组引起的问题解决方法 SQL Server日志清空方法 SQL SERVER 触发器实例 如何设计一个安全的WEBSERVICE 使用BizTalk Server常见问题处理 ASP.NET程序中常用的三十三种代码 浅谈反射与特性在接口系统中的应用(编码表转化) 使用window.createPopup();做的简单下拉菜单
javascript以list方式封装xml - voiow - 博客园
voiow · 2010-01-04 · via 博客园 - voiow

//以List的方式封装xml
function getOneObjectByXML(xmlStr, methodPath) {
 var xmlDoc = null;
 //加载xml字符串
 if (window.ActiveXObject){
  xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  //var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
 } else {
  if (document.implementation&&document.implementation.createDocument){
   xmlDoc=document.implementation.createDocument("","doc",null);
  }
 }
 
 //设置xml对象的属性
 xmlDoc.async = false;
 xmlDoc.preserveWhiteSpace = true;
 
 //使用两种形式加载并获取加载是否成功
 var bol = xmlDoc.load(xmlStr) ? xmlDoc.load(xmlStr) : xmlDoc.loadXML(xmlStr);
  var nodes = xmlDoc.documentElement;
 
  //获取methodPath指定路径下的所有子节点
 var temp = xmlDoc.getElementsByTagName(methodPath)[0].childNodes;
 
 //循环获取所有字节对象(保存为Array)
 var objectList = new Array();
 for (i = 0; i < temp.length; i ++) {
  objectList[i] = getChildNode(temp[i].childNodes);
 }
 return objectList;
}

//辅助获取返回值递归调用
function getChildNode(sonNodeList) {
 var mySonList = new Array();
 var j = 0;
 for (; j < sonNodeList.length; j ++) {
  //判断该节点下面是否有子节点,如果有就循环子节点,否则就保存
  if (sonNodeList[j].childNodes[0].tagName != null) {
   mySonList[sonNodeList[j].tagName] = getChildNode(sonNodeList[j].childNodes);
  } else {
   if (sonNodeList[j].tagName == 'item')
    mySonList[j] = sonNodeList[j].text;
   else
    mySonList[sonNodeList[j].tagName] = sonNodeList[j].text;
  }
 }
 return mySonList;
}

//辅助SOAP构造多个同名子节点
//sonNodeName:子节点名称
//valueList:子节点值得列表Array对象
//makeValue:如果valueList为null,就根据makeValue来判断生成字符、数字、BIT。。。。。。(str/bit/num/char)
//sonCount:子节点个数
//sonNodeLength:字节点值得长度/多少范围内的整数
function createManySonNodes(sonNodeName, valueList, makeValue, sonCount, sonNodeLength) {
  var tempNodeList = "";
 if (valueList != null) {
  for (i = 0; i < valueList.length; i ++) {
   tempNodeList += "<" + sonNodeName + ">" + valueList[i] + "</" + sonNodeName + ">";
  }
 } else {
  if (makeValue == 'str') {
   for (i = 0; i < sonCount; i ++) {
    tempNodeList += "<" + sonNodeName + ">" + randomStr(sonNodeLength) + "</" + sonNodeName + ">";
   }
  } else if (makeValue == 'bit') {
   for (i = 0; i < sonCount; i ++) {
    tempNodeList += "<" + sonNodeName + ">" + randomBit() + "</" + sonNodeName + ">"
   }
  } else if (makeValue == 'num') {
   for (i = 0; i < sonCount; i ++) {
    tempNodeList += "<" + sonNodeName + ">" + randomNumber(sonNodeLength) + "</" + sonNodeName + ">"
   }
  } else if (makeValue == 'char') {
   for (i = 0; i < sonCount; i ++) {
    tempNodeList += "<" + sonNodeName + ">" + randomChar(sonNodeLength) + "</" + sonNodeName + ">"
   }
  }
 }
 return tempNodeList;
}

TrackURL:http://janhang.blog.hexun.com/25233469_d.html