我正在嘗試使用具有以下功能的 JavaScript 從 HTML 表單撰寫 XML 檔案:
JavaScript 函式:
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 ){
var el=document.createElement(elNames[i]);
if (inputs[i].name){
el.set("name",inputs[i].name);
el.setAttribute("value",inputs[i].value);
xmldata.push(el.outerHTML);
}
}
xmldata.push("</book>");
return xmldata.join("\n");
}
生成的檔案具有以下格式:
<?xml version="1.0" encoding="UTF-8"?>
<book>
<author value="Something" name="author"/>
<title value="Something" name="title"/>
</book>
我正在嘗試修改該方法以使節點具有以下格式:
<author>Something</author>
<title>Something</title>
我知道 setAttribute() 不起作用,因為它在節點中創建了一個屬性。我找不到像上面的例子那樣設定值的函式。
有什么建議?
uj5u.com熱心網友回復:
您可以使用innerHTML元素上的屬性來設定值。
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 ) {
var el = document.createElement(elNames[i]);
if (inputs[i].name) {
el.innerHTML = inputs[i].value; // Set the innerHTML of the element
xmldata.push(el.outerHTML);
}
}
xmldata.push("</book>");
return xmldata.join("\n");
}
示例輸出:
<?xml version="1.0" encoding="UTF-8"?>
<book>
<author>Robert Louis Stevenson</author>
<title>Treasure Island</title>
</book>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/367567.html
標籤:javascript html xml
下一篇:(反應路由器v6)“錯誤:useNavigate()只能在<Router>組件的背景關系中使用”hoc組件中的錯誤
