public function testRender() { $XmlToArrayNode = new XmlToArrayNode($this->_name, $this->_attributes); $mockFalseXmlToArrayNode = new XmlToArrayNode($this->_name, false); $XmlToArrayNode->addChild($mockFalseXmlToArrayNode); $mockXmlToArrayNode = new XmlToArrayNode($this->_name, $this->_attributes); $XmlToArrayNode->addChild($mockXmlToArrayNode); $this->assertEquals(array('name' => array('name' => array(0 => '', 1 => ''))), $XmlToArrayNode->render('struct')); $XmlToArrayNode = new XmlToArrayNode($this->_name, $this->_attributes); $XmlToArrayNode->addChild($mockXmlToArrayNode); $this->assertEquals(array('name' => array('name' => '')), $XmlToArrayNode->render('struct')); $this->assertEquals(array('name' => array('name' => array('name' => array('@data' => '', '@attributes' => array('attribute1' => 'val1', 'attribute2' => 'val2'))), '@data' => '', '@attributes' => array('attribute1' => 'val1', 'attribute2' => 'val2'))), $XmlToArrayNode->render(FALSE)); $this->assertEquals(array('name' => array('name' => '')), $XmlToArrayNode->render(TRUE)); $mock2XmlToArrayNode = new XmlToArrayNode($this->_name, array()); $XmlToArrayNode = new XmlToArrayNode($this->_name, $this->_attributes); $mockXmlToArrayNode->addChild($mock2XmlToArrayNode); $XmlToArrayNode->addChild($mockXmlToArrayNode); $XmlToArrayNode->addChild($mockXmlToArrayNode); $this->assertEquals(array('name' => array('name' => array(0 => array('name' => array('name' => '')), 1 => array('name' => array('name' => ''))))), $XmlToArrayNode->render('struct')); }
/** * Returns parsed XML as array structure * @param boolean $simpleStructure (default false) * @return array */ public function toArray($simpleStructure = false) { return $this->_CurrentXmlToArrayNode->render($simpleStructure); }
/** * 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); }