Le moyen le plus rapide pour parser XML en Python

J'essaie de trouver le qickest façon d'analyser les données du capteur à partir d'un smartphone pour une en temps réel de l'application. Le Format ressemble à ceci:

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

Disponibles les données du capteur peut changer en fonction sur le téléphone. Mais une fois que la connexion est établie la structure des paquets ne changera pas, alors peut-être que certaines parties de l'analyse peut être sauté.

  • Une suggestion générale - selon la rapidité de votre I/O est (sont vous récupérer les données sur une connexion lente?) et la taille du fichier est-il peut faire sens pour analyser les données que vous transmettez-il, c'est à dire utiliser un parser SAX et nourrir les morceaux de balisage que vous la recevez.
  • De nombreux éléments clés à considérer dans la sélection d'un analyseur sont sur l'efficacité de mémoire, par opposition à l'efficacité dans le temps. Votre question ne parle pas de cela, et l'on a accepté la réponse ne parle à DOM-le style de solutions, qui, par nature, sont un peu la mémoire inefficace.
  • analyseur de mise en œuvre de l'API SAX était l'ancien modèle pour le streaming, mais j'avais effectivement aller avec lxml.iterparse ces jours-toujours rapide et efficace de la mémoire, mais beaucoup moins pénible à travailler.
InformationsquelleAutor BoshWash | 2013-08-29