我試圖用PHP編輯一個大的XML文件(從Excel .xlsm文件中提取),我想知道哪個最好(關於性能):QueryPath或PHP的DOMDocument?用於編輯大型XML文件的QueryPath或DOMDocument?
該文件重量至少爲8 MB,並且包含大約40萬行(格式化時)。
感謝您的反饋
我試圖用PHP編輯一個大的XML文件(從Excel .xlsm文件中提取),我想知道哪個最好(關於性能):QueryPath或PHP的DOMDocument?用於編輯大型XML文件的QueryPath或DOMDocument?
該文件重量至少爲8 MB,並且包含大約40萬行(格式化時)。
感謝您的反饋
的QueryPath基本上是圍繞DOMDocument
的包裝。它爲裸露的DOMDocument
對象增加了相對較少的開銷。對於訪問和寫入操作 - 例如attr()
,append()
等,應該沒有值得注意的性能差異。
但是,然後它涉及到一個大問題:尋找東西。
傳統上,遍歷DOMDocument
是通過「走樹」或使用DOMNode->getElementsByTagname()
完成的。如果你願意編寫代碼,這會相對較好。
使用QueryPath 2.x查詢對於大小很小的文檔會很慢,除非您使用非常特定的選擇器(例如':root> foo> bar> baz')。
但是,查詢大型對象時即將進入Alpha1的QueryPath 3.x速度要快很多倍。做qp('foo')
與XPath一樣快......這使我有最後的選擇。
然後是內置的XPath處理器,它還帶有PHP的libxml支持。如果你正在做一個大型的XML文檔,這可能會給你更好的性能,因爲它以C速度而不是PHP速度執行。但是你將不得不編寫XPath表達式,這是(恕我直言)一種痛苦。
因此,底線:
感謝您的反饋意見。由於我不知道QueryPath 3.x,我放棄了2.2版本,並使用PHP的DOMDocument。 XML結構很容易理解,並且不會很深(在我的情況下最多5層)。所以使用它並不是一個很大的痛苦... – 3rgo