getXmlWriter(); $container = $this->getElement(); if (!$container instanceof \PhpOffice\PhpWord\Element\AbstractContainer) { return; } $containerClass = substr(get_class($container), strrpos(get_class($container), '\\') + 1); $withoutP = in_array($containerClass, array('TextRun', 'Footnote', 'Endnote', 'ListItemRun')) ? true : false; // Loop through elements $elements = $container->getElements(); $elementClass = ''; if (count($elements) > 0) { 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(); } } } }