Python, XML parsing, and Elementtree. Something silly I'm sure



Help me out guys, what am I screwing up here.


I can't get this to return any results. I'm sure I'm doing something stupid. I'm not a programmer and this is driving me crazy. Trying to learn but after about 8 hours I'm frazzled.


Here is a sample of my XML:



<?xml version="1.0"?>

-<MyObjectBuilder_Sector xmlns:xsi="http://ift.tt/ra1lAU" xmlns:xsd="http://ift.tt/tphNwY">

<!-- 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>


Here is my code, it just never finds anything...:(



from xml.etree import cElementTree as ElementTree

ElementTree.register_namespace('xsi', 'http://ift.tt/1tO5Otn')
namespace = {'xsi': 'http://ift.tt/1tO5Otn'}

xmlPath = 'e:\\test.xml'
xmlRoot = ElementTree.parse(xmlPath).getroot()

#why this no return anything
results = xmlRoot.findall(".//SectorObjects/MyObjectBuilder_EntityBase[@xsi:type='MyObjectBuilder_VoxelMap']", namespaces=namespace)

Tiada ulasan:

Catat Ulasan