Python、XML解析和Elemen

2024-06-21 20:19:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我搞砸了什么?在

我不能让这个返回任何结果。我肯定在做蠢事。我不是程序员,这让我发疯了。试着学习,但8个小时后我就筋疲力尽了。在

这是我的XML示例:

<?xml version="1.0"?>

-<MyObjectBuilder_Sector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<!-- Saved '2014-08-23T15:28:07.8585220-05:00' with SEToolbox version '1.44.14.2' -->


-<Position>

<X>0</X>

<Y>0</Y>

<Z>0</Z>

</Position>


-<SectorEvents>


-<Events>


-<MyObjectBuilder_GlobalEventBase>


-<DefinitionId>

<TypeId>MyObjectBuilder_GlobalEventDefinition</TypeId>

<SubtypeId>SpawnCargoShip</SubtypeId>

</DefinitionId>

<Enabled>false</Enabled>

<ActivationTimeMs>401522</ActivationTimeMs>

</MyObjectBuilder_GlobalEventBase>

</Events>

</SectorEvents>

<AppVersion>1044014</AppVersion>


-<SectorObjects>


-<MyObjectBuilder_EntityBase xsi:type="MyObjectBuilder_VoxelMap">

<EntityId>72248529206701361</EntityId>

<PersistentFlags>CastShadows InScene</PersistentFlags>


-<PositionAndOrientation>

<Position z="-466" y="-8987" x="-95"/>

<Forward z="-1" y="0" x="0"/>

<Up z="0" y="1" x="0"/>

</PositionAndOrientation>

<Filename>BaseAsteroid.vox</Filename>

</MyObjectBuilder_EntityBase>


-<MyObjectBuilder_EntityBase xsi:type="MyObjectBuilder_VoxelMap">

<EntityId>72151252176979970</EntityId>

<PersistentFlags>CastShadows InScene</PersistentFlags>


-<PositionAndOrientation>

<Position z="-11301.9033" y="-1183.70569" x="-2126.84"/>

<Forward z="-1" y="0" x="0"/>

<Up z="0" y="1" x="0"/>

</PositionAndOrientation>

<Filename>asteroid0.vox</Filename>

</MyObjectBuilder_EntityBase>


-<MyObjectBuilder_EntityBase xsi:type="MyObjectBuilder_VoxelMap">

<EntityId>72108197145016458</EntityId>

<PersistentFlags>CastShadows InScene</PersistentFlags>


-<PositionAndOrientation>

<Position z="355.7873" y="18738.05" x="1064.912"/>

<Forward z="-1" y="0" x="0"/>

<Up z="0" y="1" x="0"/>

</PositionAndOrientation>

<Filename>asteroid1.vox</Filename>

</MyObjectBuilder_EntityBase>

这是我的代码,它就是找不到任何东西……:(

^{pr2}$

Tags: typepositionfilenameforwardupvoxxsientityid
1条回答
网友
1楼 · 发布于 2024-06-21 20:19:49

你的问题是“我搞砸了什么?”首先,您的XML本身有问题,似乎无法将其粘贴到此处。我几乎没做什么使之可行。在

1)添加了以下行,因为XML中没有这些行:

</SectorObjects>
</MyObjectBuilder_Sector>

2)findall函数不接受命名参数“namespaces”,xsi部分也给出了一个错误(SyntaxError:prefix“xsi”在prefix map中找不到)。所以我把电话改成:

^{pr2}$

当我运行带有上述更改的代码时,我得到以下输出:

[<Element 'MyObjectBuilder_EntityBase' at 0x025028A8>, <Element 'MyObjectBuilder_EntityBase' at 0x02502CC8>, <Element 'MyObjectBuilder_EntityBase' at 0x02502E18>]

如果您想执行更多操作,例如获取EntityId的值,可以执行以下操作:

results = xmlRoot.findall(".//SectorObjects/MyObjectBuilder_EntityBase")
try:
    for result in results:
        print result.find('EntityId').text
except AttributeError as aE:
    print str(aE)

输出:

72248529206701361
72151252176979970
72108197145016458

相关问题 更多 >