如何将JavaScript对象转换为XML

如何将JavaScript对象转换为XML,javascript,Javascript,我在将JavaScript对象转换为XML时面临一个问题。我有一个JavaScript对象,里面有一个数组,下面添加了详细信息: var jsonTestData= { “ID”:1, “应用程序名称”:“ABC”, “方法”:[ { “ID”:1, “名称”:“AAA”, “说明”:“试验方法”, “参数”:[ { “ID”:3, “名称”:“B”, “DefaultValue”:“IE” } ] }, { “ID”:2, “名称”:“BBB”, “说明”:“s”, “参数”:[ { “ID

我在将JavaScript对象转换为XML时面临一个问题。我有一个JavaScript对象,里面有一个数组,下面添加了详细信息:

var jsonTestData=
{
“ID”:1,
“应用程序名称”:“ABC”,
“方法”:[
{
“ID”:1,
“名称”:“AAA”,
“说明”:“试验方法”,
“参数”:[
{
“ID”:3,
“名称”:“B”,
“DefaultValue”:“IE”
}
]
},
{
“ID”:2,
“名称”:“BBB”,
“说明”:“s”,
“参数”:[
{
“ID”:4,
“名称”:“B”,
“DefaultValue”:“f”
},
{
“ID”:5,
“名称”:“P”,
“DefaultValue”:“E]]>”
}
]
},
{
“ID”:3,
“名称”:“有效”,
“描述”:“一些描述”,
“参数”:[
{
“ID”:6,
“名称”:“ExpectedResult”,
“DefaultValue”:“0\”]]>“
}
]
},
{
“ID”:4,
“名称”:“消息”,
“描述”:“一些描述”,
“参数”:[
{
“ID”:7,
“名称”:“消息”,
“DefaultValue”:“*第一件事*第二件事子事*第三件事”
}
]
},
{
“ID”:5,
“名称”:“结果”,
“描述”:“一些描述”,
“参数”:空
},
{
“ID”:6,
“名称”:“验证”,
“描述”:“一些描述”,
“参数”:[
{
“ID”:8,
“名称”:“FileToCheck”,
“DefaultValue”:“1”
}
]
}
]

}
我已根据您的要求对您的方法进行了一次更改

看看下面的方法,让我知道它是否有用

OBJtoXML = (obj: { [x: string]: any; }) => {
    var xml = '';
    for (var prop in obj) {
        if (prop === "Name") {

        } else {
            xml += obj[prop] instanceof Array ? '' : "<" + prop + ">";
        }
        if (obj[prop] instanceof Array) {
            for (var array in obj[prop]) {
                xml += "<" + prop + ">";
                if (prop === 'Parameters') {
                    var nObj: any = {};
                    nObj[new Object(obj[prop][array])['Name']] = new Object(obj[prop][array])['DefaultValue'];
                    xml += OBJtoXML(nObj); //add values    
                } else {
                    xml += OBJtoXML(new Object(obj[prop][array])); //add values    
                }
                xml += "</" + prop + ">";
            }
        } else if (typeof obj[prop] == "object") {
            xml += OBJtoXML(new Object(obj[prop]));
        } else {
            xml += obj[prop];
        }

        if (prop === "Name") {
            //do nothing
        } else if (prop === "Parameters") {
            xml += obj[prop] instanceof Array ? '' : "</Parameters>";
            xml += "</Name>";
        }
        else {
            xml += obj[prop] instanceof Array ? '' : "</" + prop + ">";
        }
    }
    var xml = xml.replace(/<\/?[0-9]{1,}>/g, '');
    return xml;
}
OBJtoXML=(obj:{[x:string]:any;})=>{
var xml='';
用于(obj中的var prop){
如果(道具==“名称”){
}否则{
xml+=obj[prop]数组实例?“”:“”;
}
if(obj[prop]数组实例){
for(对象[prop]中的变量数组){
xml+=“”;
如果(prop==‘参数’){
var nObj:any={};
nObj[newobject(obj[prop][array])['Name']=newobject(obj[prop][array])['DefaultValue'];
xml+=OBJtoXML(nObj);//添加值
}否则{
xml+=OBJtoXML(新对象(obj[prop][array]);//添加值
}
xml+=“”;
}
}else if(对象的类型[prop]=“对象”){
xml+=OBJtoXML(新对象(obj[prop]);
}否则{
xml+=obj[prop];
}
如果(道具==“名称”){
//无所事事
}否则如果(属性==“参数”){
xml+=obj[prop]数组实例?“”:“”;
xml+=“”;
}
否则{
xml+=obj[prop]数组实例?“”:“”;
}
}
var xml=xml.replace(//g',);
返回xml;
}
我希望它能让我知道

“严格使用”;
var jsonTestData={
“ID”:1,
“应用程序名称”:“ABC”,
“方法”:[
{
“ID”:1,
“名称”:“AAA”,
“说明”:“试验方法”,
“参数”:[
{
“ID”:3,
“名称”:“B”,
“DefaultValue”:“IE”
}
]
},
{
“ID”:2,
“名称”:“BBB”,
“说明”:“s”,
“参数”:[
{
“ID”:4,
“名称”:“B”,
“DefaultValue”:“f”
},
{
“ID”:5,
“名称”:“P”,
“DefaultValue”:“E]]>”
}
]
},
{
“ID”:3,
“名称”:“有效”,
“描述”:“一些描述”,
“参数”:[
{
“ID”:6,
“名称”:“ExpectedResult”,
“DefaultValue”:“0\”]]>“
}
]
},
{
“ID”:4,
“名称”:“消息”,
“描述”:“一些描述”,
“参数”:[
{
“ID”:7,
“名称”:“消息”,
“DefaultValue”:“*第一件事*第二件事子事*第三件事”
}
]
},
{
“ID”:5,
“名称”:“结果”,
“描述”:“一些描述”,
“参数”:空
},
{
“ID”:6,
“名称”:“验证”,
“描述”:“一些描述”,
“参数”:[
{
“ID”:8,
“名称”:“FileToChec”