2012-04-05 15 views
0

ich eine XML-Datei aus (30GB) haben, die zwei Klassen von Daten enthält, müssen die Daten der Klasse 1Effiziente Weise xml auszuführen in Python Parsen

<id="11" class="1" bestmatchingid="50" Body="abc"> </id> 
. 
. 
. 
<id="9999890" class="2" MatchingClass1Id="11" Body="xyz"></id> 

nun die Aufgabe, entsprechende class1 Körper zu extrahieren und entsprechender Körper der Klasse 2, wo z

class1's id(11)== MatchingClass1Id of class2(which is 9999890) 

ich die gleiche bin erreichen, indem Sie in Python String-Vergleich des ... ist es eine effizientere Art und Weise in Python die gleiche Berücksichtigung meiner Dateigröße zu erreichen, ist 30 GB

+0

Warum Sie regex markiert haben: da Sie auch ein begineer..so für das Verständnis der Grund zum Tutorial beziehen sind? XML-Parser sind der beste Weg zu gehen ... – jamylak

+0

Ich versuche mit Regex, daher markiert Regex ... aber jeder effiziente Weg würde für mich arbeiten. –

Antwort

-1

lxml funktioniert gut für Ihren Zweck.

http://infohost.nmt.edu/tcc/help/pubs/pylxml/web/etree-view.html

Alle iterparse Verfahren ist eine effiziente Methode zur Lösung Ihres Problems

+0

(Vollständig OT: Hah. Ich war nur um die CSV Frage zu beantworten, als Sie es gelöscht haben. Ich bin überrascht, wie nervig das war. :-)) –

4

Verwenden LXML ‚s iterparse Funktion . Sehen Sie die IBM DeveloperWorks article darüber, wie man es auf sehr großen Dateien verwendet.

+0

Vielen Dank für Ihre Hilfe. Kannst du mich bitte zu einem Tutorial leiten, das einem Anfänger wie mir helfen kann, die Grundlagen von lxml zu verstehen? Auch im IBMDeveloperWorks Artikel ... funktioniert nicht für meinen Code ... da ich "id, class, Body, matchingclass1Id" habe und sie Jungs mit title arbeiten ... mag da ich Anfänger bin habe ich das nicht verstanden subtilities ... eine große Entschuldigung dafür, wieder zu stören ... aber trotzdem hilft es euch dabei, die Grundlagen zu verstehen –

+0

@ user869790: Was genau ist das Problem, Mangel an Python-Wissen oder Mangel an XML-Wissen? –

+0

Mangel an xml Wissen –