Closed sevkin closed 10 years ago
в чем смысл использования XMLREADER::END_ELEMENT вместо XMLREADER::ELEMENT ? я сам тестировал только XMLREADER::ELEMENT, в связке с вызовом $xml = $reader->expandSimpleXml(); внутри колбэка, хватает для парсинга почти любой информации.
в облегчении кода для создания sideeffect`ов: по ELEMENT поднял флажок "сейчас парсю мелкооптовые цены", по END_ELEMENT опустил. и предполагалось, что парсер потоковый. или он в ELEMENT весь узел (на 100500 дочерних узлов с артикулами) уже в память отпарсил?
наверное такую логику не получится организовать, вот почему:
I have one question. How do you registrer a callback to an Xml element by xpath? For example: /root/items/item, SimpleXmlReader::END_ELEMENT
$this->registerCallback("/root/items/item", array($this, "callbackEndItem"), XMLREADER::END_ELEMENT);
I think it will missed.
Maybe take a look at public function currentXpath and replace the switch case with if else and put a line: in_array($this->nodesType[$depth], array(self::ELEMENT, self::END_ELEMENT))
вызывается, но курсор стоит на последнем элементе внутри ожидаемого
вообще не вызывается. вот на этом семпле http://pastebin.com/UcWAaPYs