Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Fastest way to parse XML in Python

I'm trying to find the qickest way to parse sensor data from a smartphone for a realtime application. The Format looks like this:

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<NodeId>0</NodeId>
<Accelerometer>
    <Accelerometer1>-.1875240802764893</Accelerometer1>
    <Accelerometer2>4.6734819412231445</Accelerometer2>
    <Accelerometer3>8.312667846679688</Accelerometer3>
</Accelerometer>
<Gyroscope>
    <Gyroscope1>-0.10551923513412476</Gyroscope1>
    <Gyroscope2>0.009592439979314804</Gyroscope2>
    <Gyroscope3>0.019185146316885948</Gyroscope3>
</Gyroscope>
<Gravity>
    <Gravity1>-1.2976515293121338</Gravity1>
    <Gravity2>3.672762393951416</Gravity2>
    <Gravity3>9.003327369689941</Gravity3>
</Gravity>
<TimeStamp>1377767599250</TimeStamp>

The available sensor data might change depending on the phone. But once the connection is established the structure of the packages won't change, so maybe parts of the parsing could be skipped.

like image 693
BoshWash Avatar asked Aug 29 '13 09:08

BoshWash


1 Answers

If parsing speed is a key factor for you, consider using cElementTree or lxml.

There are definitely more options out there, see these threads:

  • What is the fastest way to parse large XML docs in Python?
  • How do I parse XML in Python?
  • High-performance XML parsing in Python with lxml
like image 169
alecxe Avatar answered Sep 18 '22 16:09

alecxe