如何使用JavaScript或jQuery将HTML表单数据保存为xml格式?
问题描述:
这是一个smiple html表单,我想从它获取数据并转换为xml或以xml格式获取数据?如何使用JavaScript或jQuery将HTML表单数据保存为xml格式?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="" method="post">
<p>
<label for="firstname">First Name:</label>
<input type="text" name="firstname" id="firstname">
<label for="lastName">Last Name:</label>
<input type="text" name="lastname" id="lastname">
<button id="submitButton">submit</button>
</body>
</form>
</html>
答
如果你想下载就可以使用下面的函数的任何内容的纯JavaScript解决方案:
function downloadData(contentType,data,filename){
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
link.click();
setTimeout(function(){
document.body.removeChild(link); //only to remove the temporal link
},1000);
}
哪里的contentType
对于从您可以使用的表单创建XML数据:
function fromToXml(form){
var xmldata=['<?xml version="1.0"?>'];
xmldata.push("<form>");
var inputs=form.elements;
for(var i=0;i<inputs.length;i++){
var el=document.createElement("ELEMENT");
if (inputs[i].name){
el.setAttribute("name",inputs[i].name);
el.setAttribute("value",inputs[i].value);
xmldata.push(el.outerHTML);
}
}
xmldata.push("</form>");
return xmldata.join("\n");
}
然后,尝试按照预期修改格式。
见https://jsfiddle.net/jmusfs9v/3/
一个例子,如果你在产生良好的XML输出从JavaScript可以按照文章intenerested:如何输出HTML表单数据的http://archive.oreilly.com/pub/h/2127
答
试试这个代码 -
function getXml(){
var elements = document.forms.myForm.elements;
var xmlTemplate = '<?xml version="1.0"?> <formData>';
for(var i =0; i< elements.length; i++){
var element = elements[i];
if(element.tagName=="INPUT"){
xmlTemplate = xmlTemplate + '<'+element.name+'>' + element.value+'</'+element.name+'>';
}
}
xmlTemplate = xmlTemplate +'</formData>';
return xmlTemplate;
}
getXml();
可能的复制到一个XML文件使用Javascript?](https://stackoverflow.com/questions/11383236/how-to-output-html-form-data-to-a-xml-file-using-javascript) – JRoss