我正在研究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"
...
}
}
这是不可能的。您将如何访问对象中的对象?futureXMLObject['Person']
不起作用,因为它无法返回两个对象。
您是否考虑过使用数组?
var futureXMLObj = {
"Persons": [
{
"@id": "123ok",
"@type": "student"
},
{
"@name": "Aiana",
"@type": "student",
"@parentPersonId": "123ok"
}
]
};
你不能这样做,但你可以使用Array
的对象
var futureXMLObject = {
"Person": [
{
"@id": "123ok",
"@type": "student"
},
{
"@name": "Aiana",
"@type": "student",
}
]
}
for (var person of futureXMLObject['Person']) {
console.log(person);
}
这听起来像是一个对象数组,而不仅仅是一个对象