public function testEnd() { $XmlToArray = new XmlToArray($this->_xml, $this->_maxDepth); $XmlToArrayNode = new XmlToArrayNode('test', array('test' => 'test')); $XmlToArrayNode->setParentXmlToArrayNode($XmlToArrayNode); $end = self::_getMethod('_end', $this->_classToTest); $CurrentXmlToArrayNode = self::_getProperty('_CurrentXmlToArrayNode', $this->_classToTest); $CurrentXmlToArrayNode->setValue($XmlToArray, $XmlToArrayNode); $XMLParser = xml_parser_create(); try { $end->invoke($XmlToArray, $XMLParser, 'test1'); } catch (Exception $expected) { return; } $this->fail('An expected exception has not been raised.'); xml_parser_free($XMLParser); }
/** * Handler for start tags * @param resource $parser a resource handle of the XML parser * @param string $name * @param array $attributes * @return void */ private function _start($parser, $name, $attributes) { $this->_tagStack[] = $name; if ($this->_maxDepth && count($this->_tagStack) > $this->_maxDepth) { throw new XmlToArrayException('Parse Error: max depth exceeded.', '7005'); } $XmlToArrayNode = new XmlToArrayNode($name, $attributes); if ($this->_CurrentXmlToArrayNode instanceof XmlToArrayNode && $this->_CurrentXmlToArrayNode->isOpen()) { $this->_CurrentXmlToArrayNode->addChild($XmlToArrayNode); $XmlToArrayNode->setParentXmlToArrayNode($this->_CurrentXmlToArrayNode); } $this->_CurrentXmlToArrayNode = $XmlToArrayNode; }
public function testSetParentXmlToArrayNode() { $XmlToArrayNode = new XmlToArrayNode($this->_name, $this->_attributes); $mockXmlToArrayNode = $this->getMock('XmlToArrayNode', array(), array($this->_name, $this->_attributes)); $XmlToArrayNode->setParentXmlToArrayNode($mockXmlToArrayNode); $this->assertAttributeEquals($mockXmlToArrayNode, '_ParentXmlToArrayNode', $XmlToArrayNode); }
/** * Renders a single node * * @param XmlToArrayNode $Child * @param bool $simpleStructureChildHasNoChildren * @param bool $simpleStructure * @return array */ private function _renderNode($Child, $simpleStructureChildHasNoChildren, $simpleStructure) { if ($simpleStructureChildHasNoChildren) { return $Child->getData(); } return $Child->render($simpleStructure); }