Étant donnéTrouver élément avec l'attribut avec minidom
<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 avec name = « frame.len » tout de suite sans itérer toutes les balises et de vérifier les attributs?
Pour ajouter à cette question, le xml est 300mb. J'ai manqué de mémoire la dernière fois que j'ai essayé de l'analyser. Des suggestions de meilleures bibliothèques de style sax? – xster
Eh bien, 'xml.dom.minidom' est un parseur DOM qui a besoin de lire le document entier en mémoire. Pas parce que ce n'est pas assez bon mais parce que c'est ce que font les parseurs DOM. Donc je ne sais pas ce que vous voulez dire par "de meilleures bibliothèques de style saxophone". Qu'est-ce qui ne va pas avec 'xml.sax', l'analyseur standard SAX fourni avec Python? –
Après 5000 paquets (300mb), en essayant de charger le xml bloque mon ordinateur. Sur ces 300 Mo de données, j'ai juste besoin d'environ 10 Ko dispersés dans le document. Existe-t-il un moyen plus efficace de parcourir le xml que lxml et une bibliothèque plus simple que le sax? – xster