簡體   English   中英

php xmlReader vs xmlparser

[英]php xmlReader vs xmlparser

我知道xmlreader和其他基於樹的解析器(如simplexml和dom)之間的區別。 但是xmlreader和xmlparser有什么區別? 使用一個在另一個上有什么好處?

我需要解析相對較大的xml文件,聯盟數據饋送大約100M。

它們使用兩種不同的軟件架構 - 推送與拉動。

XMLReader是一個“拉解析器”。 您負責創建一個大循環並調用read()函數來向前移動光標。 這種軟件架構趨於直觀易懂。

XMLParser是一個基於事件的“推送解析器”。 您負責注冊由start_element,end_element,character_data,start_namespace_decl等事件觸發的回調函數。當您調用xml_parse()時,Expat庫將使用您的回調函數處理整個XML文檔。

如果你不理解push與pull架構之間的細微差別,那么我建議你從XMLReader開始,因為“pull”更容易理解,更容易可視化。

不是這方面的專家,但是根據PHP文檔,XMLReader似乎是要走的路,因為介紹說“讀者在文檔流中充當光標並在途中停在每個節點上”。 理論上,這應該可以防止內存問題/泄漏,特別是在較大的文件上。

http://www.php.net/manual/en/intro.xmlreader.php

XMLParser將返回一個數組,這可能導致更大的xml文件出現內存問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM