Как я могу избавиться от каждого элемента, обернутого ключом массива отдельно, при преобразовании массива объектов в xml?

#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
}