Rechercher un élément avec l'attribut avec minidom

Donné

<field name="frame.time_delta_displayed" showname="Time delta from previous displayed frame: 0.000008000 seconds" size="0" pos="0" show="0.000008000"/>
<field name="frame.time_relative" showname="Time since reference or first frame: 0.000008000 seconds" size="0" pos="0" show="0.000008000"/>
<field name="frame.number" showname="Frame Number: 2" size="0" pos="0" show="2"/>
<field name="frame.pkt_len" showname="Packet Length: 1506 bytes" hide="yes" size="0" pos="0" show="1506"/>
<field name="frame.len" showname="Frame Length: 1506 bytes" size="0" pos="0" show="1506"/>
<field name="frame.cap_len" showname="Capture Length: 1506 bytes" size="0" pos="0" show="1506"/>
<field name="frame.marked" showname="Frame is marked: False" size="0" pos="0" show="0"/>
<field name="frame.protocols" showname="Protocols in frame: eth:ip:tcp:http:data" size="0" pos="0" show="eth:ip:tcp:http:data"/>

Comment puis-je obtenir le champ nom="cadre".len" immédiatement, sans itération sur chaque étiquette et vérifier les attributs?

  • Pour ajouter à cette question, le document xml est 300mo. J'ai manqué de mémoire la dernière fois j'ai essayé de l'analyser. Toutes les suggestions de meilleure sax style bibliothèques?
  • Eh bien, xml.dom.minidom est un DOM parser qui a besoin de lire l'intégralité du document en mémoire. Non pas parce qu'il n'est pas assez bon, mais parce que c'est ce que DOM analyseurs n'. Donc je ne sais pas ce que tu veux dire par "mieux sax style bibliothèques". Ce qui est mauvais sur xml.sax, le standard de l'analyseur SAX qui vient avec Python?
  • Après 5000 paquets (300 mo), en essayant de charger le xml se bloque mon ordinateur. De que 300 mo de données, j'ai juste besoin d'environ 10 ko qui s'est répandu à travers tout le document. Est-il un moyen plus efficace de traversant le xml que lxml et plus simple de la bibliothèque de sax?
InformationsquelleAutor xster | 2010-03-10