我正在研究node.js中的功能,该功能创建JS对象,然后将其转换为XML。 xml格式模板要求具有两个名称相同但值不同的属性,例如:
<?xml version="1.0" encoding="utf-8"?>
<XMLExample>
<Person id="123ok" type="student">
<searchable>true</searchable>
<valid>true</valid>
</Person>
<Person name="Aiana" type="student" parentPersonId="123ok">
<lastName>Ali</lastName>
<grade>9</grade>
<gradYear>2020</gradYear>
</Person>
</XMLExample>
问题是如何在另一个对象中设置两个相同名称的“ Person” JS对象?
var futureXMLObject = {
"Person": {
"@id": "123ok",
"@type": "student"
...
}
}
"Person": {
"@name": "Aiana",
"@type": "student",
"@parentPersonId": "123ok"
...
}
}
答案 0 :(得分:1)
这是不可能的。您将如何访问对象中的对象? futureXMLObject['Person']
无法正常工作,因为它无法返回两个对象。
您是否考虑过使用数组?
var futureXMLObj = {
"Persons": [
{
"@id": "123ok",
"@type": "student"
},
{
"@name": "Aiana",
"@type": "student",
"@parentPersonId": "123ok"
}
]
};
答案 1 :(得分:0)
听起来像是一个对象数组,而不只是一个对象...
答案 2 :(得分:0)
您不能这样做,但可以使用Array
个对象
var futureXMLObject = {
"Person": [
{
"@id": "123ok",
"@type": "student"
},
{
"@name": "Aiana",
"@type": "student",
}
]
}
for (var person of futureXMLObject['Person']) {
console.log(person);
}