我有解析XML文件的Python代碼爲detailed here。我知道XML文件在內存中操作時會佔用系統資源。我的解決方案適用於較小的XML文件(比如說200KB,我有一個340MB的文件)。如何在Python中以簡單的方式拆分XML文件?
我開始研究StAX(pull語法分析器)的實現,但是我的計劃很緊,我正在尋找一個更簡單的方法來完成這個任務。
我瞭解創建更小的文件塊,但是如何通過每次輸出主/標籤來提取正確的元素?
例如,這是模式:
<?xml version="1.0" ?>
<!--Sample XML Document-->
<bookstore>
<book Id="1">
....
....
</book>
<book Id="2">
....
....
</book>
<book Id="3">
....
....
</book>
....
....
....
<book Id="n">
....
....
</book>
</bookstore>
如何創建每1000項本書內容與標題數據新的XML文件?有關代碼和數據集的具體示例,請參閱我的其他question here。非常感謝。
我想要做的就是避免一次全部加載數據集的內存。我們能否以流媒體的方式解析XML文件?我是否正確地思考?
p.s:我的情況類似於2009年的question asked。一旦我找到一個更簡單的解決方案來解決我的問題,我會在這裏發佈答案。感謝您的反饋。
更妙的是,使用LXML的etree(http://lxml.de/tutorial.html)的性能提升。 – six8
@Cixate:當只需要解析時,不清楚(沒有基準)cElementTree.iterparse()是否比'lxml.etree.iterparse()'慢。http://www.ibm.com/developerworks/xml /庫/ X-hiperfparse / – jfs