[英]How to convert JSON data to XML format data and download the file in javascript
代碼將 json 轉換為 xml 但不是我想要的我應該添加什么來添加這兩行並下載 xml 格式文件
function json2xml(json) {
var a = json;
var c = document.createElement("resources");
var t = function (v) {
return {}.toString.call(v).split(' ')[1].slice(0, -1).toLowerCase();
};
var f = function (f, c, a, s) {
c.setAttribute("tools", "http://schemas.android.com/tools");
if (t(a) != "array" && t(a) != "object") {
if (t(a) != "null") {
c.appendChild(document.createTextNode(a));
}
} else {
for (var k in a) {
var v = a[k];
if (k == "ki" && t(a) == "object") {
c.setAttribute("__pi", v);
} else {
if (t(v) == "object") {
var ch = c.appendChild(document.createElementNS(null, s ? "bh" : "string"));
f(f, ch, v);
} else if (t(v) == "array") {
var ch = c.appendChild(document.createElementNS(null, s ? "ni" : "string"));
f(f, ch, v, true);
} else {
var va = document.createElementNS(null, s ? "ki" : "string");
if (t(v) != "null") {
va.appendChild(document.createTextNode(v));
}
var ch = c.appendChild(va);
ch.setAttribute("name", k);
}
}
}
}
};
f(f, c, a, t(a) == "array");
console.log(c.outerHTML);
return c.outerHTML;
}
輸出-
<resources tools="http://schemas.android.com/tools">
<string name="app_name">translations</string>
<string name="bread">jam</string>
<string name="flew">doctor</string>
<string name="version">Version</string>
</resources>
所需的輸出 -
<?xml version="1.0" encoding="utf-8"?>
<resources tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_name">translations</string>
<string name="bread">jam</string>
<string name="flew">doctor</string>
<string name="version">Version</string>
</resources>
如何添加前兩行並下載 xml 格式的文件?
只需在資源上添加屬性並在開頭插入<?xml>
字符串。
function json2xml(json) {
var a = json;
var c = document.createElement("resources");
var t = function (v) {
return {}.toString.call(v).split(' ')[1].slice(0, -1).toLowerCase();
};
var f = function (f, c, a, s) {
c.setAttribute("tools", "http://schemas.android.com/tools");
c.setAttribute("tools:ignore", "MissingTranslation");
if (t(a) != "array" && t(a) != "object") {
if (t(a) != "null") {
c.appendChild(document.createTextNode(a));
}
} else {
for (var k in a) {
var v = a[k];
if (k == "ki" && t(a) == "object") {
c.setAttribute("__pi", v);
} else {
if (t(v) == "object") {
var ch = c.appendChild(document.createElementNS(null, s ? "bh" : "string"));
f(f, ch, v);
} else if (t(v) == "array") {
var ch = c.appendChild(document.createElementNS(null, s ? "ni" : "string"));
f(f, ch, v, true);
} else {
var va = document.createElementNS(null, s ? "ki" : "string");
if (t(v) != "null") {
va.appendChild(document.createTextNode(v));
}
var ch = c.appendChild(va);
ch.setAttribute("name", k);
}
}
}
}
};
f(f, c, a, t(a) == "array");
var xml = '<?xml version="1.0" encoding="utf-8"?>' + c.outerHTML;
console.log(xml);
return xml;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.