如何将JavaScript对象转换为XML
我在将JavaScript对象转换为XML时面临一个问题。我有一个JavaScript对象,里面有一个数组,下面添加了详细信息:如何将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
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”