nextSibling && $element->nextSibling->nodeType === XML_TEXT_NODE); } /** * Test whether an element is preceded by a text node * * @param DOMElement $element * @return bool */ protected function isPrecededByText(DOMElement $element) { return ($element->previousSibling && $element->previousSibling->nodeType === XML_TEXT_NODE); } /** * {@inheritdoc} */ protected function normalizeElement(DOMElement $element) { // If this node's content is whitespace, ensure it's preceded or followed by a text node if (trim($element->textContent) === '') { if (!$this->isFollowedByText($element) && !$this->isPrecededByText($element)) { // This would become inter-element whitespace, therefore we can't inline return; } } $element->parentNode->replaceChild($this->createTextNode($element->textContent), $element); } }