11

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.

3
  • A general suggestion - depending on how fast your I/O is (are you fetching the data over a slow connection?) and how big the file is it may make sense to parse the data as you're transmitting it, i.e. use a SAX parser and feed it the chunks of markup as you receive it. Commented Aug 29, 2013 at 10:17
  • Many of the key considerations in selecting a parser are about memory efficiency, as opposed to time efficiency. Your question doesn't speak to that, and the accepted answer only speaks to DOM-style solutions, which inherently are somewhat memory-inefficient. Commented Aug 12, 2015 at 15:17
  • @FrerichRaabe, ...a parser implementing the SAX API was the old model for streaming, but I'd actually go with lxml.iterparse these days -- still fast and memory-efficient, but much less painful to work with. Commented Aug 12, 2015 at 15:18

1 Answer 1

19

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

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

Sign up to request clarification or add additional context in comments.

1 Comment

Deprecated since version 3.3: The xml.etree.cElementTree module is deprecated.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.