我的XML创建者有一个问题,我正在根据来自Maya的对象生成一大堆数据,最好能让我的属性键按照它们的写入顺序在文件中生成,而不是(非常恼人地)按字母顺序排序。在
我填充元素如下:
bodies = ET.SubElement(root, "bodies")
myRp = [ET.Element("object", name=str("rootPoint"))]
myBodies = [ET.Element("object", name=str(cObj), type=checkCollisionType(cObj), padding="-2.5") for cObj in cObjects]
bodies.extend(myRp)
bodies.extend(myBodies)
我是这样写的:
^{pr2}$我的结果应该是这样的:
<body name="" enabled="" template="">
<object name="" />
<object name="" collision_type="" padding=""/>
</body>
但是在元素树写下来之后,我得到了:
<bodies>
<body enabled="" name="" template="">
<object name=""/>
<object name="" padding="" type=""/>
</bodies>
为了可读性和通用性,我真的想保留我原来的顺序。我发现有人重新设计了ElementTree模块,但它把很多事情都搞乱了
我搜遍了网络,还没有找到可行的解决办法。在
任何帮助都将不胜感激。在
干杯
以防万一有人有类似的问题,并正在寻找答案,我自己做了一个小黑客围绕这个问题。在
虽然XML文件中的属性顺序对于我们的系统来说并不重要,但它是最好的。最后,我所做的就是用字母标记每个属性。A、 因为这本词典是按字母顺序排列的,这对我很有用。在
例如:
然后我创建了一个函数,用正确的名称替换所有出现的这些名称:
^{pr2}$这是我的解决方法,希望有人发现它有用:)
干杯
本
相关问题 更多 >
编程相关推荐