我有一个Html表单,其中包含一个能够生成XML文件并将其下载到用户计算机的按钮。
这是我的XML.js文件,它写入所有xml信息,然后将文件下载到用户计算机。
function downloadData(contentType,data,filename){
"use strict";
var link=document.createElement("A");
link.setAttribute("href",encodeURI("data:"+contentType+","+data));
link.setAttribute("style","display:none");
link.setAttribute("download",filename);
document.body.appendChild(link); //needed for firefox
console.log(link.outerHTML);
link.click();
setTimeout(function(){
document.body.removeChild(link);
},1000);
}
从表单
获取答案的函数function fromToXml(form){
"use strict";
var xmldata=['<?xml version="1.0" encoding="UTF-8"?>'];
var inputs=form.elements;
xmldata.push("<AssetInfo>");
// file name*****************************
for(var i=0;i<inputs.length;i++){
if(inputs[i].value){
xmldata.push(" <customMetaData>");
xmldata.push(" <key>"+inputs[i].placeholder+"</key>");
xmldata.push(" <value>"+inputs[i].value+"</value>");
xmldata.push(" </customMetaData>");
}
}
xmldata.push("</AssetInfo>");
return xmldata.join("\n");
}
function download(frm){
"use strict";
var data=fromToXml(frm);
console.log(data);
// file name
downloadData("text/xml",data,"hello.xml");
}
HTML按钮调用XML.js中的功能
<button class="button" type="button" onclick="download(this.form)"
id="input">GerarXML</button>
HTML按钮,要求用户选择文件
<input type="file" id="fileinput" nwdirectory multiple />
答案 0 :(得分:0)
需要php中的后端服务,该服务先读取文件名,然后将其存储在变量中,并在生成xml时调用相同的变量。