关于js解析xml的问题。在线等待 http://msdn.microsoft.com/library/en-us/xmlsdk/html/d051f7c5-e882-42e8-a5b6-d1ce67af275c.asp 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /** * 解析XML串 */ function parseXMLString(responseRuselt) { var doc = new ActiveXObject("Msxml2.DOMDocument"); doc.loadXML(responseRuselt); var obj=doc.selectNodes("//rows/row/cell"); var selectIDsAndNames = ""; for(var i=0;i<obj.length;i++) { if(i>0 && (i % 2 == 0)) selectIDsAndNames += ":"; else if(i > 0) selectIDsAndNames += ","; selectIDsAndNames += obj[i].text; } return selectIDsAndNames; }首先把data_interchange.xml内容读取出来,然后赋给responseRuselt,最后就可以通过obj[i].text读出属性值.要注意:doc.selectNodes("//rows/row/cell");是用来设置节点的.你根据情况修改.这里只有三级节点. SelectNodes 和 SelectSingleNode var arrays = new Array;function interchange( id,name,app_date,time_step,trans_step,idx,app_time,cv_value){ this.id = id; this.name=name; this.app_date= app_date; this.time_step=time_step; this.trans_step=trans_step; this.idx = idx; this.app_time=app_time; this.cv_value=cv_value;}function parseXml(){ var doc = new ActiveXObject("Msxml2.DOMDocument"); //("Msxml3.DOMDocument")..; doc.loadXML(data_interchange.xml); var root=doc.documentElement; if( root==null) return; var i=0; for(var intJ=0;intJ<root.childNodes.length;intJ++) { var mpNode = root.childNodes[intJ]; var id= mpNode.attributes[0].text; var name= mpNode.attributes[1].text; var app_date= mpNode.attributes[2].text; var time_step= mpNode.attributes[3].text; var trans_step= mpNode.attributes[4].text; for(var intI=0;intI<mpNode.childNodes.length;intI++) { var cvNode = mpNode.childNodes[intI]; var idx = cvNode.attributes[0].text; var app_time = cvNode.attributes[1].text; var cv_value = cvNode.text; arrays[i] = new interchange(id,name,app_date,time_step,trans_step, idx,app_time,cv_value); i++; } }}function getcvbyid(id,idx){ for(var j=0;j<arrays.length;j++) { if(arrays[i].id=id && arrays[i].idx=idx) { return arrays[i]; } } return null;}var objCV = getcvbyid(xxx,xxx); 以上代码完全将xml转化 javascript 对象数组,并提供一个函数可以随意访问某个对象,相关于以面向对象的方式访问xml数据,这样结构逻辑非常清析,本人一直这样用 当焦点离开时,怎样设置输入框内容? dwr在IE7下失效问题 jqgrid 刷新问题 js掉用web服务 拒绝访问 最简单的JS问题 一个小问题 如何在iframe里面判断父窗口中嵌的另一个iframe是否存在? 提交到本网以外,感觉起来不刷新,如何实现,谢谢。 求一标签!先谢谢啦!!! 求助 关于 转换的问题 JSVM2 -- 一个与应用无关的纯Javascript基础框架 菜菜提问:关于下拉列表的问题
* 解析XML串
*/
function parseXMLString(responseRuselt)
{
var doc = new ActiveXObject("Msxml2.DOMDocument");
doc.loadXML(responseRuselt);
var obj=doc.selectNodes("//rows/row/cell");
var selectIDsAndNames = "";
for(var i=0;i<obj.length;i++)
{
if(i>0 && (i % 2 == 0))
selectIDsAndNames += ":";
else if(i > 0)
selectIDsAndNames += ",";
selectIDsAndNames += obj[i].text;
}
return selectIDsAndNames;
}
首先把data_interchange.xml内容读取出来,然后赋给responseRuselt,最后就可以通过obj[i].text读出属性值.要注意:doc.selectNodes("//rows/row/cell");是用来设置节点的.你根据情况修改.这里只有三级节点.
function interchange( id,name,app_date,time_step,trans_step,idx,app_time,cv_value)
{
this.id = id;
this.name=name;
this.app_date= app_date;
this.time_step=time_step;
this.trans_step=trans_step;
this.idx = idx;
this.app_time=app_time;
this.cv_value=cv_value;
}
function parseXml()
{
var doc = new ActiveXObject("Msxml2.DOMDocument"); //("Msxml3.DOMDocument")..;
doc.loadXML(data_interchange.xml);
var root=doc.documentElement;
if( root==null) return;
var i=0;
for(var intJ=0;intJ<root.childNodes.length;intJ++)
{
var mpNode = root.childNodes[intJ];
var id= mpNode.attributes[0].text;
var name= mpNode.attributes[1].text;
var app_date= mpNode.attributes[2].text;
var time_step= mpNode.attributes[3].text;
var trans_step= mpNode.attributes[4].text; for(var intI=0;intI<mpNode.childNodes.length;intI++)
{
var cvNode = mpNode.childNodes[intI];
var idx = cvNode.attributes[0].text;
var app_time = cvNode.attributes[1].text;
var cv_value = cvNode.text;
arrays[i] = new interchange(id,name,app_date,time_step,trans_step,
idx,app_time,cv_value);
i++;
}
}
}
function getcvbyid(id,idx)
{
for(var j=0;j<arrays.length;j++)
{
if(arrays[i].id=id && arrays[i].idx=idx)
{
return arrays[i];
}
}
return null;
}var objCV = getcvbyid(xxx,xxx);
以上代码完全将xml转化 javascript 对象数组,并提供一个函数可以随意访问某个对象,相关于以面向对象的方式访问xml数据,这样结构逻辑非常清析,本人一直这样用