0

I need to convert an JSON to XML using E4x and javascript where my XML attribute is picked from JSON key. Example: var JSONstr = {"data": {"firstName": "ABC","lastName": "XYZ","email": "test@test.com"}}; and XML output should be .

My code snippet is as follow:

var xmlProfile = new XML('<root/>');
var keyAttr = Object.keys(JSONstr.data);
var xml = convertDataToXml(dataJSON, xmlProfile, keyAttr);
 function convertDataToXml(data, xml,keyAttr)
  { var attr;
   for(key in keyAttr){
     if(data.hasOwnProperty(key)) {
      if (data[key] instanceof Array) {
        // create node
        attr = keyAttr[key];
        xml.appendChild(<{attr}/>);
        convertDataToXml(data[key], xml[attr],attr[key]);
      }
      else {
       attr = keyAttr[key];
        if (attr != undefined){
         var attrib="@"+attr;
          xml.{attrib} = data.keyAttr[key]//data.attr;
          }
         }

    }
    return xml;
  }
}

The line xml.{attrib} = data.keyAttr[key]//data.attr; doesnot seem to work. How do i create an attribute dynamically? Any input is welcome.

Prachi Raj
  • 21
  • 3

1 Answers1

0

The line xml.{attrib} = data.keyAttr[key]//data.attr; doesnot seem to work. How do i create an attribute dynamically?

Change xml.{attrib} to xml[attrib].

agermano
  • 1,679
  • 6
  • 16