/** * Handler for end tags * @param resource $parser a resource handle of the XML parser * @param string $name * @return void */ private function _end($parser, $name) { array_pop($this->_tagStack); if ($this->_CurrentXmlToArrayNode instanceof XmlToArrayNode) { $this->_CurrentXmlToArrayNode->setClosed(); $breaker = 0; // step up the stack and close all tags as long as current tag is reached in stack if ($this->_CurrentXmlToArrayNode->getName() != $name) { do { $this->_CurrentXmlToArrayNode = $this->_CurrentXmlToArrayNode->getParentXmlToArrayNode(); $this->_CurrentXmlToArrayNode->setClosed(); if ($breaker > 100) { trigger_error('Had to break out from endless loop.', E_USER_WARNING); break; } ++$breaker; } while ($this->_CurrentXmlToArrayNode->getName() != $name); } elseif ($this->_CurrentXmlToArrayNode->hasParentXmlToArrayNode()) { $this->_CurrentXmlToArrayNode = $this->_CurrentXmlToArrayNode->getParentXmlToArrayNode(); } } }
public function testGetName() { $XmlToArrayNode = new XmlToArrayNode($this->_name, $this->_attributes); $this->assertEquals($this->_name, $XmlToArrayNode->getName()); }