#javascript #json #xml
Вопрос:
При преобразовании массива объектов в xml каждый элемент внутри массива оборачивается ключом массива в xml. Как я могу один раз завернуть весь элемент в ключ массива?
проблема в том, что каждый элемент в массиве оборачивается ключом массива отдельно при преобразовании xml.
мой json похож на:
{a:
[
{first: 1},
{second:2}
]
}
это преобразуется в
<a>
<first> </first>
</a>
<a>
<second> </second>
</a>
но чего я хочу, так это
<a>
<first> </first>
<second> </second>
</a>
Комментарии:
1. Пожалуйста, отредактируйте свой вопрос и добавьте сценарий, используемый для получения этого вывода.
Ответ №1:
Я нашел решение.
function OBJtoXML(obj) {
var xml = '';
for (var prop in obj) {
xml = obj[prop] instanceof Array ? '' : "<" prop ">";
if (obj[prop] instanceof Array) {
xml = "<" prop ">";
for (var array in obj[prop]) {
xml = OBJtoXML(new Object(obj[prop][array]));
}
xml = "</" prop ">";
} else if (typeof obj[prop] == "object") {
xml = OBJtoXML(new Object(obj[prop]));
} else {
xml = obj[prop];
}
xml = obj[prop] instanceof Array ? '' : "</" prop ">";
}
var xml = xml.replace(/</?[0-9]{1,}>/g, '');
return xml
}