+$dx = new \DOMXPath($doc);
+
+//remove script tags
+$elems = array();
+foreach ($doc->getElementsbyTagName('script') as $elem) {
+ $elems[] = $elem;
+}
+foreach ($elems as $elem) {
+ $elem->parentNode->removeChild($elem);
+}
+
+//default content: <body>
+$xpContext = $doc->getElementsByTagName('body')->item(0);
+
+//use microformats content if it exists
+$xpElems = $dx->query(
+ "//*[contains(concat(' ', normalize-space(@class), ' '), ' e-content ')]"
+);
+if ($xpElems->length) {
+ $xpContext = $xpElems->item(0);
+} else if ($doc->getElementById('content')) {
+ //if there is an element with ID "content", we'll use this
+ $xpContext = $doc->getElementById('content');
+}