/** * Highlights a text node * * @param DOMNode $node The text node to highlight */ protected function doHighlightTextNode(DOMNode $node) { foreach ($this->tokenize($node->textContent) as $token) { $node->splitText($token->getEnd()); $matched = $node->splitText($token->getStart()); $highlighted = $this->document->createDocumentFragment(); $highlighted->appendXML($token->getKeyword()->getHighlighter()->highlight($token->getText())); $node->parentNode->replaceChild($highlighted, $matched); } }