getXmlWriter(); $container = $this->getElement(); // Loop through subelements $containerClass = basename(get_class($container)); $subelements = $container->getElements(); $withoutP = in_array($containerClass, array('TextRun', 'Footnote', 'Endnote', 'TextBox')) ? true : false; if (count($subelements) > 0) { foreach ($subelements as $subelement) { $writerClass = substr(get_class($this), 0, strrpos(get_class($this), '\\')) . '\\' . basename(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 = substr(get_class($this), 0, strrpos(get_class($this), '\\')) . '\\TextBreak'; $writer = new $writerClass($xmlWriter, new TextBreakElement(), $withoutP); $writer->write(); } } } }