getElement(); if (!$container instanceof ContainerElement) { return; } $containerClass = substr(get_class($container), strrpos(get_class($container), '\\') + 1); $withoutP = in_array($containerClass, array('TextRun', 'Footnote', 'Endnote', 'ListItemRun')) ? true : false; $xmlWriter = $this->getXmlWriter(); // Loop through elements $elements = $container->getElements(); $elementClass = ''; foreach ($elements as $element) { $elementClass = get_class($element); $writerClass = str_replace('PhpOffice\\PhpWord\\Element', $this->namespace, $elementClass); if (class_exists($writerClass)) { $writer = new $writerClass($xmlWriter, $element, $withoutP); $writer->write(); } } // Special case for Cell: They have to contain a w:p element at the end if ($containerClass == 'Cell') { if ($elementClass == '' || $elementClass == 'PhpOffice\\PhpWord\\Element\\Table') { $writerClass = "{$this->namespace}\\TextBreak"; $writer = new $writerClass($xmlWriter, new TextBreakElement(), $withoutP); $writer->write(); } } } }