2012-04-05 68 views
0

解析我有(30GB),其含有2類數據中的XML文件的高效方式,1類的數據已經對應執行XML在python

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

現在的任務是,以提取的Class1的身體和相應的2級的身體,例如

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

我通過實現相同的字符串比較的Python中...有沒有在Python更有效的方式來完成同樣的考慮我的文件大小爲30 GB

+0

你爲什麼要標記的正則表達式的一個有效的方法? XML解析器是最好的方式去... – jamylak 2012-04-05 09:53:26

+0

我嘗試使用正則表達式,因此標記正則表達式...但任何有效的方式將爲我工作。 – 2012-04-05 09:54:35

回答

-1

lxml適用於您的目的。此外,由於你是瞭解的基本參考教程begineer..so:

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

所有iterparse方法,是解決你的問題

+0

(完全是OT:哈,我只是在刪除它時回答了CSV問題,我很驚訝那是多麼惱人:-)) – 2013-04-29 08:39:35

4

使用LXMLiterparse功能。關於如何在非常大的文件上使用它,請參閱IBM DeveloperWorks article

+0

非常感謝幫助。你可以請我指導一個教程,這可以幫助像我這樣的初學者追上lxml的基礎知識。另外在IBMDeveloperWorks文章中...對我的代碼不起作用...因爲我有「id,class,Body,matchingclass1Id」,他們都在使用title ...可能是因爲我是新手,我不明白subtilities ...一個很大的道歉再次打擾...但仍然儘管你幫助我堅持試圖瞭解基本知識 – 2012-04-05 10:32:49

+0

@ user869790:究竟是什麼問題,缺乏Python知識或缺乏XML知識? – 2012-04-05 10:37:37

+0

缺少xml知識 – 2012-04-05 10:38:50