function checkSubmit()
{
if(!checkForm()){return false;};
var s='<?xml version="1.0" encoding="gb2312"?>';
s+='<tableData>';
var foms=form1.elements;
var oldobj;
for(var i=0;i<foms.length;i++)
{
var obj=foms[i];
if((obj.nodeName=="INPUT" && (obj.type=="checkbox" || obj.type=="text" || obj.type=="radio")) || obj.nodeName=="TEXTAREA")
{
if(obj.type=="checkbox" || obj.type=="radio")
{
if(!obj.checked)
{
continue;
}
}
s+='<'+obj.name+'>'+obj.value+'</'+obj.name+'>';
}
}
s+='</tableData>';
saveDoc(s);
}
//保存成XML文件
function saveDoc(s)
{
fileDialog.CancelError=true;
try
{
fileDialog.Filter="XML Files (*.XML)|*.XML";
fileDialog.ShowSave();
var fso=new ActiveXObject("Scripting.FileSystemObject");
var f=fso.CreateTextFile(fileDialog.filename,true);
f.write(s);
f.Close();
}
catch(e){}
} 以前是这样保存的,问题是有些IE弹不出文件保存框,网上说的有些IE不支持,于是我换成了下面这种方法://保存成XML文件
function saveDoc(s)
{
b=window.open();
b.document.open();
b.document.write(s);
b.document.close();
b.document.execCommand('saveAs',false,'*.xml');
b.close();
} 解析文件方法不变
//解析XML文件内容并放入表单
function parseXml(xmlstr)
{
if(xmlstr=="" || xmlstr==undefined){return;}
var xmlDoc = new ActiveXObject("Microsoft.xmldom");
xmlDoc.async = "false";
xmlDoc.load(xmlstr);
var items=xmlDoc.selectNodes("/tableData")[0].childNodes;
for(var i=0;i<items.length;i++)
{
var obj=document.getElementsByName(items[i].nodeName);
var objV=items[i].text;
if(obj)
{
if(obj[0].type=="radio" || obj[0].type=="checkbox")
{
for(var j=0;j<obj.length;j++)
{
if(obj[j].value==objV)
{
obj[j].checked=true;
}
}
}
obj[0].value=objV;
}
}
}
问题:用document.write()生成的XML文件,解析的时候出错.但解析修改程序前生成的XML没有任何问题 说明问题出在document.write()生成的XML文件不正确,但我对比前后的两个文件,看不出问题,比如乱码啊. 请各位帮帮忙,两种方式只要能提供一种的解决方案都行,谢谢了
{
if(!checkForm()){return false;};
var s='<?xml version="1.0" encoding="gb2312"?>';
s+='<tableData>';
var foms=form1.elements;
var oldobj;
for(var i=0;i<foms.length;i++)
{
var obj=foms[i];
if((obj.nodeName=="INPUT" && (obj.type=="checkbox" || obj.type=="text" || obj.type=="radio")) || obj.nodeName=="TEXTAREA")
{
if(obj.type=="checkbox" || obj.type=="radio")
{
if(!obj.checked)
{
continue;
}
}
s+='<'+obj.name+'>'+obj.value+'</'+obj.name+'>';
}
}
s+='</tableData>';
saveDoc(s);
}
//保存成XML文件
function saveDoc(s)
{
fileDialog.CancelError=true;
try
{
fileDialog.Filter="XML Files (*.XML)|*.XML";
fileDialog.ShowSave();
var fso=new ActiveXObject("Scripting.FileSystemObject");
var f=fso.CreateTextFile(fileDialog.filename,true);
f.write(s);
f.Close();
}
catch(e){}
} 以前是这样保存的,问题是有些IE弹不出文件保存框,网上说的有些IE不支持,于是我换成了下面这种方法://保存成XML文件
function saveDoc(s)
{
b=window.open();
b.document.open();
b.document.write(s);
b.document.close();
b.document.execCommand('saveAs',false,'*.xml');
b.close();
} 解析文件方法不变
//解析XML文件内容并放入表单
function parseXml(xmlstr)
{
if(xmlstr=="" || xmlstr==undefined){return;}
var xmlDoc = new ActiveXObject("Microsoft.xmldom");
xmlDoc.async = "false";
xmlDoc.load(xmlstr);
var items=xmlDoc.selectNodes("/tableData")[0].childNodes;
for(var i=0;i<items.length;i++)
{
var obj=document.getElementsByName(items[i].nodeName);
var objV=items[i].text;
if(obj)
{
if(obj[0].type=="radio" || obj[0].type=="checkbox")
{
for(var j=0;j<obj.length;j++)
{
if(obj[j].value==objV)
{
obj[j].checked=true;
}
}
}
obj[0].value=objV;
}
}
}
问题:用document.write()生成的XML文件,解析的时候出错.但解析修改程序前生成的XML没有任何问题 说明问题出在document.write()生成的XML文件不正确,但我对比前后的两个文件,看不出问题,比如乱码啊. 请各位帮帮忙,两种方式只要能提供一种的解决方案都行,谢谢了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货