如何使用JavaScript从HTML表单生成指定格式的XML文件
解决方案
你需要给创建的DOM元素设置textContent属性来添加内嵌文本,直接删除原有设置属性的相关逻辑即可,修改后代码如下:
function formToXml(form){ var xmldata=['<?xml version="1.0" encoding="UTF-8"?>']; const elNames = ["author", "title"]; xmldata.push("<book>"); var inputs=form.elements; for(var i=0;i<inputs.length;i++){ // 跳过超出预设elNames长度的表单项,避免报错 if(i >= elNames.length) break; var el=document.createElement(elNames[i]); if (inputs[i].name){ // 直接设置内嵌文本,不需要额外加属性 el.textContent = inputs[i].value; xmldata.push(el.outerHTML); } } xmldata.push("</book>"); return xmldata.join("\n"); }
代码说明
- 用DOM元素的
textContent属性赋值,会自动把内容写入标签的闭合区间内,不会生成属性 - 内置了越界判断,避免表单项数量超过预设的
elNames数组长度时创建异常标签 - 特殊字符(比如
<、&等)会自动转义,保证生成的XML格式合法
最终生成的XML就会是你需要的格式:
<?xml version="1.0" encoding="UTF-8"?> <book> <author>Something</author> <title>Something</title> </book>
内容的提问来源于stack exchange,提问作者michaelpnrs
相关产品推荐
相关产品推荐

