我需要使用E4x和javascript将JSON转换为XML,其中我的XML属性是从JSON键中选取的。例: var JSONstr = {“data”:{“firstName”:“ABC”,“lastName”:“XYZ”,“email”:“test@test.com”}}; 和XML输出应该是。
我的代码段如下:
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;
}
}
第xml行。{attrib} = data.keyAttr [key] // data.attr;似乎没有用。如何动态创建属性?欢迎任何意见。
答案 0 :(得分:0)
第xml行。{attrib} = data.keyAttr [key] // data.attr;似乎不起作用。如何动态创建属性?
将xml.{attrib}
更改为xml[attrib]
。