Prachi Raj
Prachi Raj

Reputation: 21

JSON to XML conversion using E4x and javascript

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": "[email protected]"}}; 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.

Upvotes: 0

Views: 174

Answers (1)

agermano
agermano

Reputation: 1729

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].

Upvotes: 0

Related Questions