Reputation: 21
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
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