getXmlWriter(); $container = $this->getElement(); $containerClass = substr(get_class($container), strrpos(get_class($container), '\\') + 1); $withoutP = in_array($containerClass, array('TextRun', 'Footnote', 'Endnote', 'ListItemRun')) ? true : false; // Loop through subelements $subelements = $container->getElements(); if (count($subelements) > 0) { foreach ($subelements as $subelement) { $writerClass = str_replace('PhpOffice\\PhpWord\\Element', $this->namespace, get_class($subelement)); if (class_exists($writerClass)) { $writer = new $writerClass($xmlWriter, $subelement, $withoutP); $writer->write(); } } } else { // Special case for Cell: They have to contain a TextBreak at least if ($containerClass == 'Cell') { $writerClass = "{$this->namespace}\\TextBreak"; $writer = new $writerClass($xmlWriter, new TextBreakElement(), $withoutP); $writer->write(); } } } }