我有一組的哪個索引大型XML文件(鏈接到MediaWiki轉儲文件),並使用這些的indeces對隨機存取存儲在文件中的單個記錄工具。它工作得很好,但我用字符串函數和/或正則表達式「解析」XML,而不是真正的XML解析器,這是一個脆弱的解決方案,應該在將來改變文件的創建方式。大的XML文件隨機存取
做一些或大多數XML解析器有辦法做這樣的事情?
(我有我的C語言編寫的,Perl和Python工具版本。解析整個文件轉換成某種數據庫或將它們映射到內存中沒有選項)。
UPDATE
這裏是粗略的統計比較:我使用的文件大多每週發佈一次,目前的文件大小爲1,918,212,991字節。我的索引工具的C版本在我的上網本上花費了幾分鐘,並且只需爲每個發佈的新XML文件運行一次。不經常我使用其當前大小爲30565654976個字節,並於2010
我想知道爲什麼在一年之內沒有人評論過這個答案。這個用例非常罕見嗎?這對你來說有效嗎@hippietrail? – fho 2014-02-27 11:33:28
@弗洛裏安:我從來沒有嘗試過。當時我正在使用的編程語言中沒有實現/庫/膠水,維基百科XML轉儲文件的格式仍然沒有改變,無法與我以前的簡單化方法一起使用。但我同意你的看法,在這裏似乎沒有人提到這樣的用例... – hippietrail 2014-02-27 12:48:01
也許這只是選擇正確的工具的正確工具的問題。 XML在隨機訪問*和*大文件的同時並不是很好。 Otoh如果我只有一大堆XML,如果我被要求在這些文件中提供隨機訪問,我沒有多少選擇。購買更多內存和使用DOM被考慮,但最終我們在多臺計算機上創建了大型文件,購買更多內存只是延遲了這個問題。 – fho 2014-02-27 13:18:25